| From stable-bounces@linux.kernel.org Sun Oct 29 13:50:07 2006 |
| Date: Sun, 29 Oct 2006 22:48:49 +0100 |
| From: Akinobu Mita <akinobu.mita@gmail.com> |
| To: Linus Torvalds <torvalds@osdl.org>, Greg KH <gregkh@suse.de>, stable@kernel.org |
| Message-ID: <20061029214849.GB4532@infomag.infomag.iguana.be> |
| Mime-Version: 1.0 |
| Content-Disposition: inline |
| Cc: Andrew Morton <akpm@osdl.org>, Akinobu Mita <akinobu.mita@gmail.com> |
| Subject: Watchdog: sc1200wdt - fix missing pnp_unregister_driver() |
| Content-Type: text/plain; charset="us-ascii" |
| |
| From: Akinobu Mita <akinobu.mita@gmail.com> |
| |
| [WATCHDOG] sc1200wdt.c pnp unregister fix. |
| |
| If no devices found or invalid parameter is specified, |
| scl200wdt_pnp_driver is left unregistered. |
| It breaks global list of pnp drivers. |
| |
| Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> |
| Signed-off-by: Wim Van Sebroeck <wim@iguana.be> |
| Signed-off-by: Andrew Morton <akpm@osdl.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| Signed-off-by: Chris Wright <chrisw@sous-sol.org> |
| |
| --- |
| drivers/char/watchdog/sc1200wdt.c | 9 +++++++-- |
| 1 file changed, 7 insertions(+), 2 deletions(-) |
| |
| --- linux-2.6.18.1.orig/drivers/char/watchdog/sc1200wdt.c |
| +++ linux-2.6.18.1/drivers/char/watchdog/sc1200wdt.c |
| @@ -392,7 +392,7 @@ static int __init sc1200wdt_init(void) |
| if (io == -1) { |
| printk(KERN_ERR PFX "io parameter must be specified\n"); |
| ret = -EINVAL; |
| - goto out_clean; |
| + goto out_pnp; |
| } |
| |
| #if defined CONFIG_PNP |
| @@ -405,7 +405,7 @@ static int __init sc1200wdt_init(void) |
| if (!request_region(io, io_len, SC1200_MODULE_NAME)) { |
| printk(KERN_ERR PFX "Unable to register IO port %#x\n", io); |
| ret = -EBUSY; |
| - goto out_clean; |
| + goto out_pnp; |
| } |
| |
| ret = sc1200wdt_probe(); |
| @@ -435,6 +435,11 @@ out_rbt: |
| out_io: |
| release_region(io, io_len); |
| |
| +out_pnp: |
| +#if defined CONFIG_PNP |
| + if (isapnp) |
| + pnp_unregister_driver(&scl200wdt_pnp_driver); |
| +#endif |
| goto out_clean; |
| } |
| |