diff options
author | Tejun Heo <htejun@gmail.com> | 2007-01-27 13:47:02 +0100 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2007-01-27 13:47:02 +0100 |
commit | 6855036aa035913bc2bfb31c41576a49f42ecd5f (patch) | |
tree | 7524fa60ef1a36ea6630a9b6613cb7099875569d | |
parent | 82ab1eeceba6705cd5a8815c48eb03af1dada744 (diff) | |
download | linux-3.10-6855036aa035913bc2bfb31c41576a49f42ecd5f.tar.gz linux-3.10-6855036aa035913bc2bfb31c41576a49f42ecd5f.tar.bz2 linux-3.10-6855036aa035913bc2bfb31c41576a49f42ecd5f.zip |
ide: unregister idepnp driver on unload
idepnp driver is registered as a pnp driver on ide init but doesn't
get unregistered on ide unload causing driver list corruption and
eventually oops. Fix it.
Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
-rw-r--r-- | drivers/ide/ide-pnp.c | 5 | ||||
-rw-r--r-- | drivers/ide/ide.c | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/drivers/ide/ide-pnp.c b/drivers/ide/ide-pnp.c index df7d1504f84..98410ca044c 100644 --- a/drivers/ide/ide-pnp.c +++ b/drivers/ide/ide-pnp.c @@ -73,3 +73,8 @@ void __init pnpide_init(void) { pnp_register_driver(&idepnp_driver); } + +void __exit pnpide_exit(void) +{ + pnp_unregister_driver(&idepnp_driver); +} diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c index 16890769dca..3b334af0c7b 100644 --- a/drivers/ide/ide.c +++ b/drivers/ide/ide.c @@ -1782,6 +1782,7 @@ done: } extern void pnpide_init(void); +extern void pnpide_exit(void); extern void h8300_ide_init(void); /* @@ -2094,6 +2095,10 @@ void cleanup_module (void) for (index = 0; index < MAX_HWIFS; ++index) ide_unregister(index); +#ifdef CONFIG_BLK_DEV_IDEPNP + pnpide_exit(); +#endif + #ifdef CONFIG_PROC_FS proc_ide_destroy(); #endif |