cyber2000fb.c: use proper method for stopping unload if CONFIG_ARCH_SHARK
authorRusty Russell <rusty@rustcorp.com.au>
Sat, 13 Jun 2009 03:46:50 +0000 (21:46 -0600)
committerRusty Russell <rusty@rustcorp.com.au>
Fri, 12 Jun 2009 12:16:53 +0000 (21:46 +0930)
Russell explains the __module_get():
> cyber2000fb.c does it in its module initialization function
> to prevent the module (when built for Shark) from being unloaded.  It
> does this because it's from the days of 2.2 kernels and no one bothered
> writing the module unload support for Shark.

Since 2.4, the correct answer has been to not define an unload fn.

Cc: Russell King <rmk+lkml@arm.linux.org.uk>
Cc: alex@shark-linux.de
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
drivers/video/cyber2000fb.c

index 83c5cefc266c6f75562d36537589704a89352185..da7c01b39be248129a1a5f99274695cc510872d2 100644 (file)
@@ -1736,10 +1736,8 @@ static int __init cyber2000fb_init(void)
 
 #ifdef CONFIG_ARCH_SHARK
        err = cyberpro_vl_probe();
-       if (!err) {
+       if (!err)
                ret = 0;
-               __module_get(THIS_MODULE);
-       }
 #endif
 #ifdef CONFIG_PCI
        err = pci_register_driver(&cyberpro_driver);
@@ -1749,14 +1747,15 @@ static int __init cyber2000fb_init(void)
 
        return ret ? err : 0;
 }
+module_init(cyber2000fb_init);
 
+#ifndef CONFIG_ARCH_SHARK
 static void __exit cyberpro_exit(void)
 {
        pci_unregister_driver(&cyberpro_driver);
 }
-
-module_init(cyber2000fb_init);
 module_exit(cyberpro_exit);
+#endif
 
 MODULE_AUTHOR("Russell King");
 MODULE_DESCRIPTION("CyberPro 2000, 2010 and 5000 framebuffer driver");