* [3.0-git16] Oops at driver_uevent_store().
@ 2011-08-02 2:25 Tetsuo Handa
0 siblings, 0 replies; 10+ messages in thread
From: Tetsuo Handa @ 2011-08-02 2:25 UTC (permalink / raw)
To: linux-kernel
I'm getting below oops on CentOS 6.0 (x86_32) since at least 3.0-git11.
3.0 works OK.
Config is at http://I-love.SAKURA.ne.jp/tmp/config-3.0-git16 .
[ 5.434284] NET: Registered protocol family 17
[ 5.439180] Using IPI No-Shortcut mode
[ 5.441357] input: ImPS/2 Generic Wheel Mouse as /devices/platform/i8042/serio1/input/input2
[ 5.451427] debug: unmapping init memory c1583000..c173d000
[ 5.453428] Write protecting the kernel text: 3848k
[ 5.454413] Testing CPA: Reverting c1000000-c13c2000
[ 5.456225] Testing CPA: write protecting again
[ 5.457817] Write protecting the kernel read-only data: 1488k
[ 5.459136] Testing CPA: undo c13c2000-c1536000
[ 5.460662] Testing CPA: write protecting again
[ 5.474749] dracut: dracut-004-33.2.el6_0
[ 5.484396] udev: starting version 147
[ 5.486118] ------------[ cut here ]------------
[ 5.487813] WARNING: at fs/proc/base.c:1123 oom_adjust_write+0x266/0x280()
[ 5.490401] Hardware name: VMware Virtual Platform
[ 5.491594] udevd (1193): /proc/1193/oom_adj is deprecated, please use /proc/1193/oom_score_adj instead.
[ 5.494400] Modules linked in:
[ 5.495771] Pid: 1193, comm: udevd Tainted: G W 3.0.0-git16 #1
[ 5.497469] Call Trace:
[ 5.498398] [<c103a2bd>] warn_slowpath_common+0x6d/0xa0
[ 5.499915] [<c1113046>] ? oom_adjust_write+0x266/0x280
[ 5.502065] [<c1113046>] ? oom_adjust_write+0x266/0x280
[ 5.503676] [<c103a36e>] warn_slowpath_fmt+0x2e/0x30
[ 5.504858] [<c1113046>] oom_adjust_write+0x266/0x280
[ 5.507912] [<c10c6b7a>] vfs_write+0x9a/0x140
[ 5.509834] [<c1112de0>] ? oom_score_adj_write+0x250/0x250
[ 5.511514] [<c10c6ced>] sys_write+0x3d/0x70
[ 5.512328] [<c13c0d0c>] sysenter_do_call+0x12/0x32
[ 5.515909] ---[ end trace 93d72a36b9146f24 ]---
[ 5.819969] dracut: Starting plymouth daemon
[ 5.887203] ata_id used greatest stack depth: 5840 bytes left
[ 6.224024] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
[ 6.280249] dracut: Mounted root filesystem /dev/sda1
[ 6.355938] dracut: Loading SELinux policy
[ 6.626868] load_policy used greatest stack depth: 5696 bytes left
[ 6.629000] dracut: /sbin/load_policy: Can't load policy: No such device
[ 6.692244] dracut: Switching root
[ 7.657652] udev: starting version 147
[ 7.669087] BUG: unable to handle kernel paging request at c15e2744
[ 7.669648] IP: [<c1242f20>] driver_uevent_store+0x20/0x40
[ 7.669648] *pde = 01d65067 *pte = 015e2162
[ 7.671783] Oops: 0000 [#1] SMP DEBUG_PAGEALLOC
[ 7.673560] Modules linked in:
[ 7.673647]
[ 7.673647] Pid: 2874, comm: udevadm Tainted: G W 3.0.0-git16 #1 VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform
[ 7.673648] EIP: 0060:[<c1242f20>] EFLAGS: 00010246 CPU: 1
[ 7.675163] EIP is at driver_uevent_store+0x20/0x40
[ 7.676075] EAX: 00000000 EBX: 00000003 ECX: ffffffff EDX: f67ce000
[ 7.677645] ESI: c15e2710 EDI: 00000003 EBP: f1b13f30 ESP: f1b13f24
[ 7.677646] DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
[ 7.677646] Process udevadm (pid: 2874, ti=f1b12000 task=f138c3a0 task.ti=f1b12000)
[ 7.679454] Stack:
[ 7.680206] 00000000 c1242f00 f4a7df70 f1b13f40 c1242c67 c13e24a0 f6662d28 f1b13f64
[ 7.682162] c111ce8c 00000003 c13e24a0 f106bf84 f4a7df70 f411ef20 00000003 bfe2df1e
[ 7.686981] f1b13f8c c10c6b7a f1b13f98 f411ef28 00000020 c111cdf0 f1b13fa0 f411ef20
[ 7.689530] Call Trace:
[ 7.689816] [<c1242f00>] ? bus_uevent_store+0x40/0x40
[ 7.691158] [<c1242c67>] drv_attr_store+0x27/0x40
[ 7.692418] [<c111ce8c>] sysfs_write_file+0x9c/0xf0
[ 7.695157] [<c10c6b7a>] vfs_write+0x9a/0x140
[ 7.696104] [<c111cdf0>] ? sysfs_open_file+0x1e0/0x1e0
[ 7.697762] [<c10c6ced>] sys_write+0x3d/0x70
[ 7.699155] [<c13c0d0c>] sysenter_do_call+0x12/0x32
[ 7.700128] Code: f8 89 ec 5d c3 8d b6 00 00 00 00 55 89 e5 83 ec 0c 89 5d f8 89 cb 89 75 fc 8d 4d f4 89 c6 89 d0 89 da e8 34 ae f7 ff 85 c0 75 0b <8b> 46 34 8b 55 f4 e8 b5 b2 f7 ff 89 d8 8b 75 fc 8b 5d f8 89 ec
[ 7.711151] EIP: [<c1242f20>] driver_uevent_store+0x20/0x40 SS:ESP 0068:f1b13f24
[ 7.713324] CR2: 00000000c15e2744
[ 7.714362] ---[ end trace 93d72a36b9146f25 ]---
[ 8.165941] pcnet32: pcnet32.c:v1.35 21.Apr.2008 tsbogend@alpha.franken.de
[ 8.168320] pcnet32 0000:02:01.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19
[ 8.170581] pcnet32: PCnet/PCI II 79C970A at 0x2000, 00:0c:29:6c:1a:76 assigned IRQ 19
[ 8.175791] pcnet32: eth0: registered as PCnet/PCI II 79C970A
[ 8.177491] pcnet32: 1 cards_found
[ 8.281700] ip used greatest stack depth: 5588 bytes left
[ 9.131734] EXT4-fs (sda1): re-mounted. Opts: (null)
[ 9.687123] NET: Registered protocol family 10
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [3.0-git16] Oops at driver_uevent_store().
2011-08-04 7:41 ` Linus Torvalds
@ 2011-08-04 14:41 ` Arnaud Lacombe
0 siblings, 0 replies; 10+ messages in thread
From: Arnaud Lacombe @ 2011-08-04 14:41 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Tetsuo Handa, bunk, greg, akpm, linux-kernel
Hi,
On Thu, Aug 4, 2011 at 3:41 AM, Linus Torvalds
<torvalds@linux-foundation.org> wrote:
> 2011/8/3 Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>:
>> Arnaud Lacombe wrote:
>>> Marking `pci_eisa_driver' as __refdata fix the warning and leave the
>>> struct untouched:
>>>
>>> diff --git a/drivers/eisa/pci_eisa.c b/drivers/eisa/pci_eisa.c
>>> index 30da70d..cdae207 100644
>>> --- a/drivers/eisa/pci_eisa.c
>>> +++ b/drivers/eisa/pci_eisa.c
>>
>> This patch solved the oops. Thank you.
>
> Arnaud, thanks. Sign-off and slightly cleaned-up changelog?
>
Sent in a separate patch; sorry for the breakage.
- Arnaud
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [3.0-git16] Oops at driver_uevent_store().
2011-08-04 8:40 ` Adrian Bunk
@ 2011-08-04 14:36 ` Arnaud Lacombe
0 siblings, 0 replies; 10+ messages in thread
From: Arnaud Lacombe @ 2011-08-04 14:36 UTC (permalink / raw)
To: Adrian Bunk; +Cc: Tetsuo Handa, greg, akpm, torvalds, linux-kernel
Hi,
On Thu, Aug 4, 2011 at 4:40 AM, Adrian Bunk <bunk@kernel.org> wrote:
> On Thu, Aug 04, 2011 at 01:47:11AM -0400, Arnaud Lacombe wrote:
>> Hi,
>>
>> [Added Adrian Bunk to the Cc: list]
>
> Thanks.
>
>> 2011/8/3 Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>:
>>...
>> commit 74b9a297866d0416edd0be5014cb0810de049c6a
>> Author: Adrian Bunk <bunk@stusta.de>
>> Date: Mon Mar 26 21:32:27 2007 -0800
>>
>> [PATCH] drivers/eisa/pci_eisa.c:pci_eisa_init() should be init
>>
>> WARNING: drivers/built-in.o - Section mismatch: reference to
>> .init.text:eisa_root_register from .text between 'pci_eisa_init' (at
>> offset 0xabf670) and 'virtual_eisa_release'
>>
>> AFAIK a PCI to EISA bridge isn't anything hotpluggable, so
>> pci_eisa_init() can become __init.
>>
>> Signed-off-by: Adrian Bunk <bunk@stusta.de>
>> Cc: Greg KH <greg@kroah.com>
>> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
>> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
>>
>>
>> To gain a few bytes, 'pci_eisa_init' is freed, but its reference is
>> kept in `pci_eisa_driver' which triggers the warning. The commit log
>> points out that PCI to EISA should not be hotpluggable, so it is not
>> expected to be ever executed again (which would trigger a crash).
>
> This was not for gaining a few bytes, and I'm not exactly seeing why I'm
> to blame here, since my patch is invariant to what your patch does:
>
> Calling pci_eisa_init outside of __init:
> - might have crashed before my patch and
> - after my patch and
> - after your patch
> since eisa_root_register() is __init.
>
>> Marking `pci_eisa_driver' as __refdata fix the warning and leave the
>> struct untouched:
>>
>> diff --git a/drivers/eisa/pci_eisa.c b/drivers/eisa/pci_eisa.c
>> index 30da70d..cdae207 100644
>> --- a/drivers/eisa/pci_eisa.c
>> +++ b/drivers/eisa/pci_eisa.c
>> @@ -45,13 +45,13 @@ static int __init pci_eisa_init(struct pci_dev *pdev,
>> return 0;
>> }
>>
>> -static struct pci_device_id __initdata pci_eisa_pci_tbl[] = {
>> +static struct pci_device_id pci_eisa_pci_tbl[] = {
>> { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
>> PCI_CLASS_BRIDGE_EISA << 8, 0xffff00, 0 },
>> { 0, }
>> };
>>
>> -static struct pci_driver __initdata pci_eisa_driver = {
>> +static struct pci_driver __refdata pci_eisa_driver = {
>> .name = "pci_eisa",
>> .id_table = pci_eisa_pci_tbl,
>> .probe = pci_eisa_init,
>
> So the commit that broke it was not mine, but
>
> commit 005bdad7b80ac017ca21d795639d4214b9844a84
> Author: Arnaud Lacombe <lacombar@gmail.com>
> Date: Mon Jul 25 17:13:04 2011 -0700
>
> eisa/pci_eisa.c: fix section mismatch
>
> Fixes
>
> WARNING: vmlinux.o(.data+0x15d3ac): Section mismatch in reference from the
> The variable pci_eisa_driver references the function __init pci_eisa_init(
> If the reference is valid then annotate the variable with __init* or __ref
> *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console
>
> Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
> Cc: Greg KH <greg@kroah.com>
> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
>
>
>
> Please don't blame me for bugs you introduced.
>
I was merely pointing out the modpost warning, but yes, I broke the stuff.
- Arnaud
>
>> - Arnaud
>
> cu
> Adrian
>
> --
>
> "Is there not promise of rain?" Ling Tan asked suddenly out
> of the darkness. There had been need of rain for many days.
> "Only a promise," Lao Er said.
> Pearl S. Buck - Dragon Seed
>
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [3.0-git16] Oops at driver_uevent_store().
2011-08-04 5:47 ` Arnaud Lacombe
2011-08-04 7:15 ` Tetsuo Handa
@ 2011-08-04 8:40 ` Adrian Bunk
2011-08-04 14:36 ` Arnaud Lacombe
1 sibling, 1 reply; 10+ messages in thread
From: Adrian Bunk @ 2011-08-04 8:40 UTC (permalink / raw)
To: Arnaud Lacombe; +Cc: Tetsuo Handa, greg, akpm, torvalds, linux-kernel
On Thu, Aug 04, 2011 at 01:47:11AM -0400, Arnaud Lacombe wrote:
> Hi,
>
> [Added Adrian Bunk to the Cc: list]
Thanks.
> 2011/8/3 Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>:
>...
> commit 74b9a297866d0416edd0be5014cb0810de049c6a
> Author: Adrian Bunk <bunk@stusta.de>
> Date: Mon Mar 26 21:32:27 2007 -0800
>
> [PATCH] drivers/eisa/pci_eisa.c:pci_eisa_init() should be init
>
> WARNING: drivers/built-in.o - Section mismatch: reference to
> .init.text:eisa_root_register from .text between 'pci_eisa_init' (at
> offset 0xabf670) and 'virtual_eisa_release'
>
> AFAIK a PCI to EISA bridge isn't anything hotpluggable, so
> pci_eisa_init() can become __init.
>
> Signed-off-by: Adrian Bunk <bunk@stusta.de>
> Cc: Greg KH <greg@kroah.com>
> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
>
>
> To gain a few bytes, 'pci_eisa_init' is freed, but its reference is
> kept in `pci_eisa_driver' which triggers the warning. The commit log
> points out that PCI to EISA should not be hotpluggable, so it is not
> expected to be ever executed again (which would trigger a crash).
This was not for gaining a few bytes, and I'm not exactly seeing why I'm
to blame here, since my patch is invariant to what your patch does:
Calling pci_eisa_init outside of __init:
- might have crashed before my patch and
- after my patch and
- after your patch
since eisa_root_register() is __init.
> Marking `pci_eisa_driver' as __refdata fix the warning and leave the
> struct untouched:
>
> diff --git a/drivers/eisa/pci_eisa.c b/drivers/eisa/pci_eisa.c
> index 30da70d..cdae207 100644
> --- a/drivers/eisa/pci_eisa.c
> +++ b/drivers/eisa/pci_eisa.c
> @@ -45,13 +45,13 @@ static int __init pci_eisa_init(struct pci_dev *pdev,
> return 0;
> }
>
> -static struct pci_device_id __initdata pci_eisa_pci_tbl[] = {
> +static struct pci_device_id pci_eisa_pci_tbl[] = {
> { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
> PCI_CLASS_BRIDGE_EISA << 8, 0xffff00, 0 },
> { 0, }
> };
>
> -static struct pci_driver __initdata pci_eisa_driver = {
> +static struct pci_driver __refdata pci_eisa_driver = {
> .name = "pci_eisa",
> .id_table = pci_eisa_pci_tbl,
> .probe = pci_eisa_init,
So the commit that broke it was not mine, but
commit 005bdad7b80ac017ca21d795639d4214b9844a84
Author: Arnaud Lacombe <lacombar@gmail.com>
Date: Mon Jul 25 17:13:04 2011 -0700
eisa/pci_eisa.c: fix section mismatch
Fixes
WARNING: vmlinux.o(.data+0x15d3ac): Section mismatch in reference from the
The variable pci_eisa_driver references the function __init pci_eisa_init(
If the reference is valid then annotate the variable with __init* or __ref
*_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console
Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Please don't blame me for bugs you introduced.
> - Arnaud
cu
Adrian
--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [3.0-git16] Oops at driver_uevent_store().
2011-08-04 7:15 ` Tetsuo Handa
@ 2011-08-04 7:41 ` Linus Torvalds
2011-08-04 14:41 ` Arnaud Lacombe
0 siblings, 1 reply; 10+ messages in thread
From: Linus Torvalds @ 2011-08-04 7:41 UTC (permalink / raw)
To: Tetsuo Handa; +Cc: lacombar, bunk, greg, akpm, linux-kernel
2011/8/3 Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>:
> Arnaud Lacombe wrote:
>> Marking `pci_eisa_driver' as __refdata fix the warning and leave the
>> struct untouched:
>>
>> diff --git a/drivers/eisa/pci_eisa.c b/drivers/eisa/pci_eisa.c
>> index 30da70d..cdae207 100644
>> --- a/drivers/eisa/pci_eisa.c
>> +++ b/drivers/eisa/pci_eisa.c
>
> This patch solved the oops. Thank you.
Arnaud, thanks. Sign-off and slightly cleaned-up changelog?
Linus
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [3.0-git16] Oops at driver_uevent_store().
2011-08-04 5:47 ` Arnaud Lacombe
@ 2011-08-04 7:15 ` Tetsuo Handa
2011-08-04 7:41 ` Linus Torvalds
2011-08-04 8:40 ` Adrian Bunk
1 sibling, 1 reply; 10+ messages in thread
From: Tetsuo Handa @ 2011-08-04 7:15 UTC (permalink / raw)
To: lacombar, bunk; +Cc: greg, akpm, torvalds, linux-kernel
Arnaud Lacombe wrote:
> Marking `pci_eisa_driver' as __refdata fix the warning and leave the
> struct untouched:
>
> diff --git a/drivers/eisa/pci_eisa.c b/drivers/eisa/pci_eisa.c
> index 30da70d..cdae207 100644
> --- a/drivers/eisa/pci_eisa.c
> +++ b/drivers/eisa/pci_eisa.c
This patch solved the oops. Thank you.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [3.0-git16] Oops at driver_uevent_store().
2011-08-04 3:55 ` Tetsuo Handa
@ 2011-08-04 5:47 ` Arnaud Lacombe
2011-08-04 7:15 ` Tetsuo Handa
2011-08-04 8:40 ` Adrian Bunk
0 siblings, 2 replies; 10+ messages in thread
From: Arnaud Lacombe @ 2011-08-04 5:47 UTC (permalink / raw)
To: Tetsuo Handa; +Cc: greg, akpm, torvalds, linux-kernel, Adrian Bunk
Hi,
[Added Adrian Bunk to the Cc: list]
2011/8/3 Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>:
> Arnaud Lacombe wrote:
>> Looking more closely, I'd say I have been too eager in the marking.
>> The warning concern `pci_eisa_driver', not `pci_eisa_pci_tbl' which is
>> also referenced by MODULE_DEVICE_TABLE().
>>
>> Does removing the annotation from `pci_eisa_pci_tbl' fix the BUG ?
> No.
>
ok, I had to enable DEBUG_PAGEALLOC to trigger the crash.
> -static struct pci_device_id __initdata pci_eisa_pci_tbl[] = {
> +static struct pci_device_id pci_eisa_pci_tbl[] = {
>
> did not help.
>
> Printing dmesg in verbose showed below three lines.
>
> [ 0.262828] EISA bus registered
> [ 6.291117] EISA: Probing bus 0 at eisa.0
> [ 6.295445] EISA: Cannot allocate resource for mainboard
>
> Manual printk() tracing showed below callchain.
>
> virtual_eisa_root_init() calls eisa_root_register().
> eisa_root_register() calls eisa_probe().
> eisa_probe() returns -EBUSY since root->force_probe == 0.
> eisa_root_register() calls release_resource() and returns -EBUSY.
> virtual_eisa_root_init() calls platform_device_unregister() and returns -1.
>
> Also, eisa_root_register() in pci_eisa_init() is not called.
>
I'd guess you just have no PCI-EISA bridge in your VM. The trace you
point out should only indicate that you have no EISA device either, as
the comment a bit before point out:
/* First try to get hold of slot 0. If there is no device
* here, simply fail, unless root->force_probe is set. */
> So, it seems that something is wrong with cleanup.
> pci_unregister_driver() is missing?
>
The crash happens when sysfs tries to access the device_driver inside
'pci_eisa_driver'. I'd argue that the root of the problem is commit
74b9a297866d which created the inconsistency at the first place:
commit 74b9a297866d0416edd0be5014cb0810de049c6a
Author: Adrian Bunk <bunk@stusta.de>
Date: Mon Mar 26 21:32:27 2007 -0800
[PATCH] drivers/eisa/pci_eisa.c:pci_eisa_init() should be init
WARNING: drivers/built-in.o - Section mismatch: reference to
.init.text:eisa_root_register from .text between 'pci_eisa_init' (at
offset 0xabf670) and 'virtual_eisa_release'
AFAIK a PCI to EISA bridge isn't anything hotpluggable, so
pci_eisa_init() can become __init.
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
To gain a few bytes, 'pci_eisa_init' is freed, but its reference is
kept in `pci_eisa_driver' which triggers the warning. The commit log
points out that PCI to EISA should not be hotpluggable, so it is not
expected to be ever executed again (which would trigger a crash).
Marking `pci_eisa_driver' as __refdata fix the warning and leave the
struct untouched:
diff --git a/drivers/eisa/pci_eisa.c b/drivers/eisa/pci_eisa.c
index 30da70d..cdae207 100644
--- a/drivers/eisa/pci_eisa.c
+++ b/drivers/eisa/pci_eisa.c
@@ -45,13 +45,13 @@ static int __init pci_eisa_init(struct pci_dev *pdev,
return 0;
}
-static struct pci_device_id __initdata pci_eisa_pci_tbl[] = {
+static struct pci_device_id pci_eisa_pci_tbl[] = {
{ PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
PCI_CLASS_BRIDGE_EISA << 8, 0xffff00, 0 },
{ 0, }
};
-static struct pci_driver __initdata pci_eisa_driver = {
+static struct pci_driver __refdata pci_eisa_driver = {
.name = "pci_eisa",
.id_table = pci_eisa_pci_tbl,
.probe = pci_eisa_init,
- Arnaud
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [3.0-git16] Oops at driver_uevent_store().
2011-08-04 2:48 ` Arnaud Lacombe
@ 2011-08-04 3:55 ` Tetsuo Handa
2011-08-04 5:47 ` Arnaud Lacombe
0 siblings, 1 reply; 10+ messages in thread
From: Tetsuo Handa @ 2011-08-04 3:55 UTC (permalink / raw)
To: lacombar; +Cc: greg, akpm, torvalds, linux-kernel
Arnaud Lacombe wrote:
> Looking more closely, I'd say I have been too eager in the marking.
> The warning concern `pci_eisa_driver', not `pci_eisa_pci_tbl' which is
> also referenced by MODULE_DEVICE_TABLE().
>
> Does removing the annotation from `pci_eisa_pci_tbl' fix the BUG ?
No.
-static struct pci_device_id __initdata pci_eisa_pci_tbl[] = {
+static struct pci_device_id pci_eisa_pci_tbl[] = {
did not help.
Printing dmesg in verbose showed below three lines.
[ 0.262828] EISA bus registered
[ 6.291117] EISA: Probing bus 0 at eisa.0
[ 6.295445] EISA: Cannot allocate resource for mainboard
Manual printk() tracing showed below callchain.
virtual_eisa_root_init() calls eisa_root_register().
eisa_root_register() calls eisa_probe().
eisa_probe() returns -EBUSY since root->force_probe == 0.
eisa_root_register() calls release_resource() and returns -EBUSY.
virtual_eisa_root_init() calls platform_device_unregister() and returns -1.
Also, eisa_root_register() in pci_eisa_init() is not called.
So, it seems that something is wrong with cleanup.
pci_unregister_driver() is missing?
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [3.0-git16] Oops at driver_uevent_store().
2011-08-04 2:21 Tetsuo Handa
@ 2011-08-04 2:48 ` Arnaud Lacombe
2011-08-04 3:55 ` Tetsuo Handa
0 siblings, 1 reply; 10+ messages in thread
From: Arnaud Lacombe @ 2011-08-04 2:48 UTC (permalink / raw)
To: Tetsuo Handa; +Cc: greg, akpm, torvalds, linux-kernel
2011/8/3 Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>:
> Commit 005bdad7 "eisa/pci_eisa.c: fix section mismatch" triggers oops.
> Reverting it solved the oops. Is this rather a sysfs bug?
>
> [ 7.460292] dracut: Mounted root filesystem /dev/sda1
> [ 7.603017] dracut: Loading SELinux policy
> [ 7.976804] dracut: /sbin/load_policy: Can't load policy: No such device
> [ 8.095959] dracut: Switching root
> [ 9.452334] udev: starting version 147
> [ 9.456695] BUG: unable to handle kernel paging request at c15dd684
> [ 9.457860] IP: [<c12408a0>] driver_uevent_store+0x20/0x40
> [ 9.457860] *pde = 01d60067 *pte = 015dd162
> [ 9.457860] Oops: 0000 [#1] SMP DEBUG_PAGEALLOC
> [ 9.457860] Modules linked in:
> [ 9.457860]
> [ 9.457860] Pid: 2914, comm: udevadm Tainted: G W 3.0.0-03636-g005bdad #12 VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform
> [ 9.457860] EIP: 0060:[<c12408a0>] EFLAGS: 00010246 CPU: 1
> [ 9.457861] EIP is at driver_uevent_store+0x20/0x40
> [ 9.457861] EAX: 00000000 EBX: 00000003 ECX: ffffffff EDX: f4422000
> [ 9.457861] ESI: c15dd650 EDI: 00000003 EBP: f4b63f30 ESP: f4b63f24
> [ 9.457861] DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
> [ 9.459164] Process udevadm (pid: 2914, ti=f4b62000 task=f49f87e0 task.ti=f4b62000)
> [ 9.463514] Stack:
> [ 9.464278] 00000000 c1240880 f4d61f70 f4b63f40 c12405e7 c13e0240 f5c1bea8 f4b63f64
> [ 9.465858] c111cf6c 00000003 c13e0240 f4f82f84 f4d61f70 f18cdf20 00000003 bfe20f1e
> [ 9.465858] f4b63f8c c10c6bba f4b63f98 f18cdf28 00000020 c111ced0 f4b63fa0 f18cdf20
> [ 9.467123] Call Trace:
> [ 9.468030] [<c1240880>] ? bus_uevent_store+0x40/0x40
> [ 9.469764] [<c12405e7>] drv_attr_store+0x27/0x40
> [ 9.469856] [<c111cf6c>] sysfs_write_file+0x9c/0xf0
> [ 9.469856] [<c10c6bba>] vfs_write+0x9a/0x140
> [ 9.469857] [<c111ced0>] ? sysfs_open_file+0x1e0/0x1e0
> [ 9.469857] [<c10c6d2d>] sys_write+0x3d/0x70
> [ 9.469857] [<c13be60c>] sysenter_do_call+0x12/0x32
> [ 9.469857] Code: f8 89 ec 5d c3 8d b6 00 00 00 00 55 89 e5 83 ec 0c 89 5d f8 89 cb 89 75 fc 8d 4d f4 89 c6 89 d0 89 da e8 34 b5 f7 ff 85 c0 75 0b <8b> 46 34 8b 55 f4 e8 b5 b9 f7 ff 89 d8 8b 75 fc 8b 5d f8 89 ec
> [ 9.469964] EIP: [<c12408a0>] driver_uevent_store+0x20/0x40 SS:ESP 0068:f4b63f24
> [ 9.471828] CR2: 00000000c15dd684
> [ 9.472987] ---[ end trace 93d72a36b9146f25 ]---
> [ 9.959305] pcnet32: pcnet32.c:v1.35 21.Apr.2008 tsbogend@alpha.franken.de
> [ 9.961686] pcnet32 0000:02:01.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19
> [ 9.963766] pcnet32: PCnet/PCI II 79C970A at 0x2000, 00:0c:29:6c:1a:76 assigned IRQ 19
>
> Config is at http://I-love.SAKURA.ne.jp/tmp/config-3.0-git16 .
>
Looking more closely, I'd say I have been too eager in the marking.
The warning concern `pci_eisa_driver', not `pci_eisa_pci_tbl' which is
also referenced by MODULE_DEVICE_TABLE().
Does removing the annotation from `pci_eisa_pci_tbl' fix the BUG ?
Thanks,
- Arnaud
> Regards.
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [3.0-git16] Oops at driver_uevent_store().
@ 2011-08-04 2:21 Tetsuo Handa
2011-08-04 2:48 ` Arnaud Lacombe
0 siblings, 1 reply; 10+ messages in thread
From: Tetsuo Handa @ 2011-08-04 2:21 UTC (permalink / raw)
To: lacombar, greg; +Cc: akpm, torvalds, linux-kernel
Commit 005bdad7 "eisa/pci_eisa.c: fix section mismatch" triggers oops.
Reverting it solved the oops. Is this rather a sysfs bug?
[ 7.460292] dracut: Mounted root filesystem /dev/sda1
[ 7.603017] dracut: Loading SELinux policy
[ 7.976804] dracut: /sbin/load_policy: Can't load policy: No such device
[ 8.095959] dracut: Switching root
[ 9.452334] udev: starting version 147
[ 9.456695] BUG: unable to handle kernel paging request at c15dd684
[ 9.457860] IP: [<c12408a0>] driver_uevent_store+0x20/0x40
[ 9.457860] *pde = 01d60067 *pte = 015dd162
[ 9.457860] Oops: 0000 [#1] SMP DEBUG_PAGEALLOC
[ 9.457860] Modules linked in:
[ 9.457860]
[ 9.457860] Pid: 2914, comm: udevadm Tainted: G W 3.0.0-03636-g005bdad #12 VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform
[ 9.457860] EIP: 0060:[<c12408a0>] EFLAGS: 00010246 CPU: 1
[ 9.457861] EIP is at driver_uevent_store+0x20/0x40
[ 9.457861] EAX: 00000000 EBX: 00000003 ECX: ffffffff EDX: f4422000
[ 9.457861] ESI: c15dd650 EDI: 00000003 EBP: f4b63f30 ESP: f4b63f24
[ 9.457861] DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
[ 9.459164] Process udevadm (pid: 2914, ti=f4b62000 task=f49f87e0 task.ti=f4b62000)
[ 9.463514] Stack:
[ 9.464278] 00000000 c1240880 f4d61f70 f4b63f40 c12405e7 c13e0240 f5c1bea8 f4b63f64
[ 9.465858] c111cf6c 00000003 c13e0240 f4f82f84 f4d61f70 f18cdf20 00000003 bfe20f1e
[ 9.465858] f4b63f8c c10c6bba f4b63f98 f18cdf28 00000020 c111ced0 f4b63fa0 f18cdf20
[ 9.467123] Call Trace:
[ 9.468030] [<c1240880>] ? bus_uevent_store+0x40/0x40
[ 9.469764] [<c12405e7>] drv_attr_store+0x27/0x40
[ 9.469856] [<c111cf6c>] sysfs_write_file+0x9c/0xf0
[ 9.469856] [<c10c6bba>] vfs_write+0x9a/0x140
[ 9.469857] [<c111ced0>] ? sysfs_open_file+0x1e0/0x1e0
[ 9.469857] [<c10c6d2d>] sys_write+0x3d/0x70
[ 9.469857] [<c13be60c>] sysenter_do_call+0x12/0x32
[ 9.469857] Code: f8 89 ec 5d c3 8d b6 00 00 00 00 55 89 e5 83 ec 0c 89 5d f8 89 cb 89 75 fc 8d 4d f4 89 c6 89 d0 89 da e8 34 b5 f7 ff 85 c0 75 0b <8b> 46 34 8b 55 f4 e8 b5 b9 f7 ff 89 d8 8b 75 fc 8b 5d f8 89 ec
[ 9.469964] EIP: [<c12408a0>] driver_uevent_store+0x20/0x40 SS:ESP 0068:f4b63f24
[ 9.471828] CR2: 00000000c15dd684
[ 9.472987] ---[ end trace 93d72a36b9146f25 ]---
[ 9.959305] pcnet32: pcnet32.c:v1.35 21.Apr.2008 tsbogend@alpha.franken.de
[ 9.961686] pcnet32 0000:02:01.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19
[ 9.963766] pcnet32: PCnet/PCI II 79C970A at 0x2000, 00:0c:29:6c:1a:76 assigned IRQ 19
Config is at http://I-love.SAKURA.ne.jp/tmp/config-3.0-git16 .
Regards.
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2011-08-04 14:41 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-08-02 2:25 [3.0-git16] Oops at driver_uevent_store() Tetsuo Handa
2011-08-04 2:21 Tetsuo Handa
2011-08-04 2:48 ` Arnaud Lacombe
2011-08-04 3:55 ` Tetsuo Handa
2011-08-04 5:47 ` Arnaud Lacombe
2011-08-04 7:15 ` Tetsuo Handa
2011-08-04 7:41 ` Linus Torvalds
2011-08-04 14:41 ` Arnaud Lacombe
2011-08-04 8:40 ` Adrian Bunk
2011-08-04 14:36 ` Arnaud Lacombe
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.