From: Ralf Baechle i2o_exec_exit and i2o_driver_exit were marked as __exit which is a bug because both are invoked from __init and __exit functions. Signed-off-by: Ralf Baechle Cc: Markus Lidel Signed-off-by: Andrew Morton --- drivers/message/i2o/core.h | 4 ++-- drivers/message/i2o/driver.c | 2 +- drivers/message/i2o/exec-osm.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff -puN drivers/message/i2o/core.h~i2o_exec_exit-and-i2o_driver_exit-should-not-be-__exit drivers/message/i2o/core.h --- a/drivers/message/i2o/core.h~i2o_exec_exit-and-i2o_driver_exit-should-not-be-__exit +++ a/drivers/message/i2o/core.h @@ -18,7 +18,7 @@ extern struct i2o_driver i2o_exec_driver extern int i2o_exec_lct_get(struct i2o_controller *); extern int __init i2o_exec_init(void); -extern void __exit i2o_exec_exit(void); +extern void i2o_exec_exit(void); /* driver */ extern struct bus_type i2o_bus_type; @@ -26,7 +26,7 @@ extern struct bus_type i2o_bus_type; extern int i2o_driver_dispatch(struct i2o_controller *, u32); extern int __init i2o_driver_init(void); -extern void __exit i2o_driver_exit(void); +extern void i2o_driver_exit(void); /* PCI */ extern int __init i2o_pci_init(void); diff -puN drivers/message/i2o/driver.c~i2o_exec_exit-and-i2o_driver_exit-should-not-be-__exit drivers/message/i2o/driver.c --- a/drivers/message/i2o/driver.c~i2o_exec_exit-and-i2o_driver_exit-should-not-be-__exit +++ a/drivers/message/i2o/driver.c @@ -362,7 +362,7 @@ int __init i2o_driver_init(void) * * Unregisters the I2O bus and frees driver array. */ -void __exit i2o_driver_exit(void) +void i2o_driver_exit(void) { bus_unregister(&i2o_bus_type); kfree(i2o_drivers); diff -puN drivers/message/i2o/exec-osm.c~i2o_exec_exit-and-i2o_driver_exit-should-not-be-__exit drivers/message/i2o/exec-osm.c --- a/drivers/message/i2o/exec-osm.c~i2o_exec_exit-and-i2o_driver_exit-should-not-be-__exit +++ a/drivers/message/i2o/exec-osm.c @@ -595,7 +595,7 @@ int __init i2o_exec_init(void) * * Unregisters the Exec OSM from the I2O core. */ -void __exit i2o_exec_exit(void) +void i2o_exec_exit(void) { i2o_driver_unregister(&i2o_exec_driver); }; _