MIPS: Make init_vdso a subsys_initcall.
authorDavid Daney <ddaney@caviumnetworks.com>
Wed, 16 Jun 2010 22:00:28 +0000 (15:00 -0700)
committerRalf Baechle <ralf@linux-mips.org>
Mon, 26 Jul 2010 18:08:16 +0000 (19:08 +0100)
Quoting from Jiri Slaby's patch of a similar nature for x86:

    When initrd is in use and a driver does request_module() in its
    module_init (i.e. __initcall or device_initcall), a modprobe
    process is created with VDSO mapping. But VDSO is inited even in
    __initcall, i.e. on the same level (at the same time), so it may
    not be inited yet (link order matters).

Move init_vdso up to subsys_initcall to avoid the issue.

Signed-off-by: David Daney <ddaney@caviumnetworks.com>
To: linux-mips@linux-mips.org
Cc: David Daney <ddaney@caviumnetworks.com>
Cc: Jiri Slaby <jslaby@suse.cz>
Patchwork: http://patchwork.linux-mips.org/patch/1386/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/vdso.c

index 6c6ee94378d54af601d9f32a1e4123cdfa5071f9..e5cdfd603f8fb6dabbdf22051b043604c8ad6496 100644 (file)
@@ -63,7 +63,7 @@ static int __init init_vdso(void)
 
        return 0;
 }
-device_initcall(init_vdso);
+subsys_initcall(init_vdso);
 
 static unsigned long vdso_addr(unsigned long start)
 {