decnet: "addr" module param can't be __initdata
Subsystems (2)
PATCH 1/1 decnet: "addr" module param can't be __initdata
sysfs keeps references to module parameters via /sys/module/*/parameters, so marking them as __initdata can't work.
Steps to reproduce:
modprobe decnet
cat /sys/module/decnet/parameters/addr
BUG: unable to handle kernel paging request at virtual address f88cd410 printing eip: c043dfd1 *pdpt = 0000000000004001 *pde = 0000000004408067 *pte = 0000000000000000 Oops: 0000 [#1] PREEMPT SMP Modules linked in: decnet sunrpc af_packet ipv6 binfmt_misc dm_mirror dm_multipath dm_mod sbs sbshc fan dock battery backlight ac power_supply parport loop rtc_cmos serio_raw rtc_core rtc_lib button amd_rng sr_mod cdrom shpchp pci_hotplug ehci_hcd ohci_hcd uhci_hcd usbcore
Pid: 2099, comm: cat Not tainted (2.6.24-rc1-b1d08ac064268d0ae2281e98bf5e82627e0f0c56-bloat #6)
EIP: 0060:[<c043dfd1>] EFLAGS: 00210286 CPU: 1
EIP is at param_get_int+0x6/0x20
EAX: c5c87000 EBX: 00000000 ECX: 000080d0 EDX: f88cd410
ESI: f8a108f8 EDI: c5c87000 EBP: 00000000 ESP: c5c97f00
DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
Process cat (pid: 2099, ti=c5c97000 task=c641ee10 task.ti=c5c97000)
Stack: 00000000 f8a108f8 c5c87000 c043db6b f8a108f1 00000124 c043de1a c043db2f
f88cd410 ffffffff c5c87000 f8a16bc8 f8a16bc8 c043dd69 c043dd54 c5dd5078
c043dbc8 c5cc7580 c06ee64c c5d679f8 c04c431f c641f480 c641f484 00001000
Call Trace:
[<c043db6b>] param_array_get+0x3c/0x62
[<c043de1a>] param_array_set+0x0/0xdf
[<c043db2f>] param_array_get+0x0/0x62
[<c043dd69>] param_attr_show+0x15/0x2d
[<c043dd54>] param_attr_show+0x0/0x2d
[<c043dbc8>] module_attr_show+0x1a/0x1e
[<c04c431f>] sysfs_read_file+0x7c/0xd9
[<c04c42a3>] sysfs_read_file+0x0/0xd9
[<c048d4b2>] vfs_read+0x88/0x134
[<c042090b>] do_page_fault+0x0/0x7d5
[<c048d920>] sys_read+0x41/0x67
[<c04080fa>] sysenter_past_esp+0x6b/0xc1
=======================
Code: 00 83 c4 0c c3 83 ec 0c 8b 52 10 8b 12 c7 44 24 04 27 dd 6c c0 89 04 24 89 54 24 08 e8 ea 01 0c 00 83 c4 0c c3 83 ec 0c 8b 52 10 <8b> 12 c7 44 24 04 58 8c 6a c0 89 04 24 89 54 24 08 e8 ca 01 0c
EIP: [<c043dfd1>] param_get_int+0x6/0x20 SS:ESP 0068:c5c97f00---
net/decnet/dn_dev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
net/decnet/dn_dev.c +1 -1
@@ -1439,7 +1439,7 @@ static const struct file_operations dn_dev_seq_fops = {#endif /* CONFIG_PROC_FS */ -static int __initdata addr[2 ]; +static int addr[2 ];module_param_array (addr, int,NULL ,0444 );MODULE_PARM_DESC (addr,"The DECnet address of this machine: area,node" );
Hi,
Looks good, Feel free to add:
Steve.
Quoted 61 lines · Alexey Dobriyan
sysfs keeps references to module parameters via
/sys/module/*/parameters, so marking them as__initdatacan't work.Steps to reproduce:
modprobe decnet
cat/sys/module/decnet/parameters/addrBUG: unable to handle kernel paging request at virtual address f88cd410 printing eip: c043dfd1 *pdpt = 0000000000004001 *pde = 0000000004408067 *pte = 0000000000000000 Oops: 0000 [#1] PREEMPT SMP Modules linked in: decnet sunrpc af_packet ipv6 binfmt_misc dm_mirror dm_multipath dm_mod sbs sbshc fan dock battery backlight ac power_supply parport loop rtc_cmos serio_raw rtc_core rtc_lib button amd_rng sr_mod cdrom shpchp pci_hotplug ehci_hcd ohci_hcd uhci_hcd usbcorePid: 2099, comm: cat Not tainted (2.6.24-rc1-b1d08ac064268d0ae2281e98bf5e82627e0f0c56-bloat #6)
EIP: 0060:[<c043dfd1>] EFLAGS: 00210286 CPU: 1
EIP is atparam_get_int+0x6/0x20
EAX:c5c87000EBX: 00000000 ECX:000080d0EDX:f88cd410
ESI:f8a108f8EDI:c5c87000EBP: 00000000 ESP:c5c97f00
DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
Process cat (pid: 2099, ti=c5c97000 task=c641ee10 task.ti=c5c97000)Stack: 00000000 f8a108f8 c5c87000 c043db6b f8a108f1 00000124 c043de1a c043db2f f88cd410 ffffffff c5c87000 f8a16bc8 f8a16bc8 c043dd69 c043dd54 c5dd5078 c043dbc8 c5cc7580 c06ee64c c5d679f8 c04c431f c641f480 c641f484 00001000 Call Trace: [<c043db6b>] param_array_get+0x3c/0x62 [<c043de1a>] param_array_set+0x0/0xdf [<c043db2f>] param_array_get+0x0/0x62 [<c043dd69>] param_attr_show+0x15/0x2d [<c043dd54>] param_attr_show+0x0/0x2d [<c043dbc8>] module_attr_show+0x1a/0x1e [<c04c431f>] sysfs_read_file+0x7c/0xd9 [<c04c42a3>] sysfs_read_file+0x0/0xd9 [<c048d4b2>] vfs_read+0x88/0x134 [<c042090b>] do_page_fault+0x0/0x7d5 [<c048d920>] sys_read+0x41/0x67 [<c04080fa>] sysenter_past_esp+0x6b/0xc1 ======================= Code: 00 83 c4 0c c3 83 ec 0c 8b 52 10 8b 12 c7 44 24 04 27 dd 6c c0 89 04 24 89 54 24 08 e8 ea 01 0c 00 83 c4 0c c3 83 ec 0c 8b 52 10 <8b> 12 c7 44 24 04 58 8c 6a c0 89 04 24 89 54 24 08 e8 ca 01 0c EIP: [<c043dfd1>] param_get_int+0x6/0x20 SS:ESP 0068:c5c97f00Signed-off-by Alexey Dobriyan <[email protected]>---
net/decnet/dn_dev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)net/decnet/dn_dev.c +1
-2@@ -1439,7 +1439,7 @@ static const struct file_operations dn_dev_seq_fops = {#endif /* CONFIG_PROC_FS */ -static int __initdata addr[2 ]; +static int addr[2 ];module_param_array (addr, int,NULL ,0444 );MODULE_PARM_DESC (addr,"The DECnet address of this machine: area,node" ); -To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Alexey Dobriyan <[email protected]>
Date: Thu, 1 Nov 2007 18:36:29 +0300
Quoted 9 lines
sysfs keeps references to module parameters via
/sys/module/*/parameters, so marking them as__initdatacan't work.Steps to reproduce:
modprobe decnet
cat/sys/module/decnet/parameters/addrBUG: unable to handle kernel paging request at virtual address f88cd410
...
Quoted 1 line
Signed-off-by Alexey Dobriyan <[email protected]>
Applied, thanks!