From mboxrd@z Thu Jan 1 00:00:00 1970 From: u.kleine-koenig@pengutronix.de (Uwe =?iso-8859-1?Q?Kleine-K=F6nig?=) Date: Thu, 7 Jan 2010 15:39:16 +0100 Subject: SMP issues on ARM11 MPCore In-Reply-To: <1687fa361001070545q73e6738apd6ce5650316eca26@mail.gmail.com> References: <1687fa361001070250l62628061h4bebaca1c03d2638@mail.gmail.com> <1687fa361001070545q73e6738apd6ce5650316eca26@mail.gmail.com> Message-ID: <20100107143916.GA24990@pengutronix.de> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi Dirk, On Thu, Jan 07, 2010 at 02:45:11PM +0100, Dirk Behme wrote: > > ?Unable to handle kernel NULL pointer dereference at virtual address 00000000 > > ?pgd = cc37c000 > > ?[00000000] *pgd=8c38f031, *pte=00000000, *ppte=00000000 > > ?Internal error: Oops: 17 [#1] SMP > > ?last sysfs file: > > ?Modules linked in: [last unloaded: module] > > ?CPU: 0 ? ?Not tainted ?(2.6.32-00012-g89b993e-dirty #17) > > ?PC is at strcmp+0x8/0x34 > > ?LR is at sysfs_find_dirent+0x18/0x38 > > ?pc : [] ? ?lr : [] ? ?psr: a0000013 > > ?sp : cc26bef8 ?ip : 00000000 ?fp : 00000000 > > ?r10: 40025000 ?r9 : cc26a000 ?r8 : 00000880 > > ?r7 : cc26bf44 ?r6 : 00000000 ?r5 : 00000000 ?r4 : cc326428 > > ?r3 : 000009b3 ?r2 : 00000000 ?r1 : 00000000 ?r0 : 00000000 > > ?Flags: NzCv ?IRQs on ?FIQs on ?Mode SVC_32 ?ISA ARM ?Segment user > > ?Control: 08c5787d ?Table: 8c37c00a ?DAC: 00000015 > > ?Process rmmod (pid: 378, stack limit = 0xcc26a270) > > ?Stack: (0xcc26bef8 to 0xcc26c000) > > ?bee0: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cc3263f8 00000000 > > ?bf00: 00000000 c08ec918 cc3263f8 00000000 00000000 00000000 00000000 ccd961e0 > > ?bf20: 00000000 c087de50 bf000074 bf000074 00000000 c087e214 00000000 c087e550 > > ?bf40: 00000001 75646f6d cc00656c cc37d000 cc25ba20 cc25ba64 cc25ba54 00000000 > > ?bf60: 40025000 00000000 40025000 00000001 cc26a000 4002501c bef869c4 0089e8e8 > > ?bf80: bf000074 00000880 cc26bf8c 00000000 be00656c 400256c0 00000000 00000081 > > ?bfa0: c0842224 c08420a0 be00656c 400256c0 bef86b80 00000880 00000000 75646f6d > > ?bfc0: be00656c 400256c0 00000000 00000081 00000059 00000000 40025000 00000000 > > ?bfe0: bef86b80 bef86b70 00012fe0 400e7740 60000010 bef86b80 00000000 00000000 > > ?[] (strcmp+0x8/0x34) from [] (sysfs_find_dirent+0x18/0x38) > > ?[] (sysfs_find_dirent+0x18/0x38) from [] > > (sysfs_hash_and_remove+0x28/0x60) > > ?[] (sysfs_hash_and_remove+0x28/0x60) from [] > > (free_notes_attrs+0x2c/0x4c) > > ?[] (free_notes_attrs+0x2c/0x4c) from [] > > (free_module+0x2c/0xdc) > > ?[] (free_module+0x2c/0xdc) from [] > > (sys_delete_module+0x214/0x250) > > ?[] (sys_delete_module+0x214/0x250) from [] > > (ret_fast_syscall+0x0/0x2c) > > Debugging of above call stack shows: > > strcmp() fails due to both parameters, cs and ct being NULL. > > Function free_module() gets 'struct module *mod' as parameter. This > has an element > > mod->notes_attrs->attrs[0].attr.name > > In case of module's init and exit function are _both_ marked with > __init/__exit, this name is NULL. This is then parsed down by above > call stack and let strcmp() fail. > > In case init and/or exit function in above module don't have > __init/__exit, name is a valid pointer. > > Any idea what might cause this? > > Many thanks and best regards does http://svn.debian.org/wsvn/kernel/dists/trunk/linux-2.6/debian/patches/bugfix/all/modules-Skip-empty-section-notes.patch help you? Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-K?nig | Industrial Linux Solutions | http://www.pengutronix.de/ |