]> git.hungrycats.org Git - linux/commitdiff
[PATCH] Fix oops with CONFIG_MCA=y
authorAndrew Morton <akpm@osdl.org>
Wed, 22 Oct 2003 01:23:01 +0000 (18:23 -0700)
committerLinus Torvalds <torvalds@home.osdl.org>
Wed, 22 Oct 2003 01:23:01 +0000 (18:23 -0700)
With CONFIG_MCA=y and no MCA bus present, drivers go oops deep in the kobject
code when calling mca_register_driver().  Because there is no MCA subsystem
registered against the driver.

Plug this in mca_register_driver().

drivers/mca/mca-driver.c

index 89fba902177e285b28e5a0cafb86687084776147..2223466b3d8a5d325abbf22ea3df1a69346add9b 100644 (file)
@@ -32,9 +32,11 @@ int mca_register_driver(struct mca_driver *mca_drv)
 {
        int r;
 
-       mca_drv->driver.bus = &mca_bus_type;
-       if ((r = driver_register(&mca_drv->driver)) < 0)
-               return r;
+       if (MCA_bus) {
+               mca_drv->driver.bus = &mca_bus_type;
+               if ((r = driver_register(&mca_drv->driver)) < 0)
+                       return r;
+       }
 
        return 0;
 }
@@ -42,6 +44,7 @@ EXPORT_SYMBOL(mca_register_driver);
 
 void mca_unregister_driver(struct mca_driver *mca_drv)
 {
-       driver_unregister(&mca_drv->driver);
+       if (MCA_bus)
+               driver_unregister(&mca_drv->driver);
 }
 EXPORT_SYMBOL(mca_unregister_driver);