Message ID | 20081202114926.GA21919@pingi.kke.suse.de |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
From: Karsten Keil <kkeil@suse.de> Date: Tue, 2 Dec 2008 12:49:26 +0100 > On "/etc/init.d/capiutils stop", this oops happened. > > The oops happens on reading /proc/capi/controllers because > capi_ctrl->procinfo is called for the wrongly not unregistered > controller, which points to b1isa_procinfo(), which was removed on > module unload. > > b1isa_exit() did not call b1isa_remove() for its controllers because > io[0] == 0 on module unload despite having been 0x340 on module load. > > Besides, just removing the controllers that where added on module > load time and not those that were added later via b1isa_add_card() is > wrong too - the place where all added cards are found is isa_dev[]. ... > Signed-off-by: Wilfried Klaebe <linux-kernel@lebenslange-mailadresse.de> > Cc: <calle@calle.de> > Cc: <stable@kernel.org> [2.6.everything] > Signed-off-by: Andrew Morton <akpm@linux-foundation.org> > Acked-by: Karsten Keil <kkeil@suse.de> Patch applied, thanks. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff -puN drivers/isdn/hardware/avm/b1isa.c~b1isa-fix-b1isa_exit-to-really-remove-registered-capi-controllers drivers/isdn/hardware/avm/b1isa.c --- a/drivers/isdn/hardware/avm/b1isa.c~b1isa-fix-b1isa_exit-to-really-remove-registered-capi-controllers +++ a/drivers/isdn/hardware/avm/b1isa.c @@ -233,10 +233,8 @@ static void __exit b1isa_exit(void) int i; for (i = 0; i < MAX_CARDS; i++) { - if (!io[i]) - break; - - b1isa_remove(&isa_dev[i]); + if (isa_dev[i].resource[0].start) + b1isa_remove(&isa_dev[i]); } unregister_capi_driver(&capi_driver_b1isa); }