Messages in this thread | | | Date | Wed, 3 Aug 2011 11:30:33 +0100 | From | Marc Zyngier <> | Subject | Re: [PATCH] shm: fix a race between shm_exit() and shm_init() |
| |
On Wed, 3 Aug 2011 09:19:24 +0100 Linus Torvalds <torvalds@linux-foundation.org> wrote:
> On Tue, Aug 2, 2011 at 10:05 PM, Marc Zyngier <marc.zyngier@arm.com> wrote: > > > > Reordering the initcalls seems the easiest solution, but it is still very > > fragile... > > So that's what I tried to do, by making it a "pure_initcall()". Even > that didn't seem to be enough according to Manuel. > > Can you try my patch (that makes just that ipc ns init be a > pure_initcall(), together with your hack on top of Andrew's? What is > it that happens so early that even pure_initcall() hasn't been done > yet?
Here you go:
SMP: Total of 4 processors activated (334.95 BogoMIPS). [<c0014754>] (unwind_backtrace+0x0/0xf4) from [<c003ed78>] (call_usermodehelper_exec+0x108/0x118) [<c003ed78>] (call_usermodehelper_exec+0x108/0x118) from [<c01760ac>] (kobject_uevent_env+0x40c/0x450) [<c01760ac>] (kobject_uevent_env+0x40c/0x450) from [<c01754e8>] (kset_register+0x3c/0x44) [<c01754e8>] (kset_register+0x3c/0x44) from [<c01c2ed0>] (bus_register+0xac/0x28c) [<c01c2ed0>] (bus_register+0xac/0x28c) from [<c042227c>] (platform_bus_init+0x20/0x40) [<c042227c>] (platform_bus_init+0x20/0x40) from [<c04222f4>] (driver_init+0x18/0x24) [<c04222f4>] (driver_init+0x18/0x24) from [<c040e270>] (kernel_init+0x84/0x13c) [<c040e270>] (kernel_init+0x84/0x13c) from [<c000f630>] (kernel_thread_exit+0x0/0x8) [<c0014754>] (unwind_backtrace+0x0/0xf4) from [<c003ed78>] (call_usermodehelper_exec+0x108/0x118) [<c003ed78>] (call_usermodehelper_exec+0x108/0x118) from [<c01760ac>] (kobject_uevent_env+0x40c/0x450) [<c01760ac>] (kobject_uevent_env+0x40c/0x450) from [<c01754e8>] (kset_register+0x3c/0x44) [<c01754e8>] (kset_register+0x3c/0x44) from [<c01c1f0c>] (sysdev_class_register+0x60/0x8c) [<c01c1f0c>] (sysdev_class_register+0x60/0x8c) from [<c040e270>] (kernel_init+0x84/0x13c) [<c040e270>] (kernel_init+0x84/0x13c) from [<c000f630>] (kernel_thread_exit+0x0/0x8) NET: Registered protocol family 16 L2x0 series cache controller enabled
driver_init() is called from do_basic_setup(), before any initcall...
M. -- I'm the slime oozin' out from your TV set...
| |