/** * usb_gigaset_exit * This function is called while unloading the kernel-module */ static void __exit usb_gigaset_exit(void) { gigaset_blockdriver(driver); /* => probe will fail * => no gigaset_start any more */ gigaset_shutdown(cardstate); /* from now on, no isdn callback should be possible */ /* deregister this driver with the USB subsystem */ usb_deregister(&gigaset_usb_driver); /* this will call the disconnect-callback */ /* from now on, no disconnect/probe callback should be running */ gigaset_freecs(cardstate); cardstate = NULL; gigaset_freedriver(driver); driver = NULL; }
static void __exit usb_gigaset_exit(void) { int i; gigaset_blockdriver(driver); for (i = 0; i < driver->minors; i++) gigaset_shutdown(driver->cs + i); usb_deregister(&gigaset_usb_driver); gigaset_freedriver(driver); driver = NULL; }
/* * This function is called while unloading the kernel-module */ static void __exit usb_gigaset_exit(void) { int i; gigaset_blockdriver(driver); /* => probe will fail * => no gigaset_start any more */ /* stop all connected devices */ for (i = 0; i < driver->minors; i++) gigaset_shutdown(driver->cs + i); /* from now on, no isdn callback should be possible */ /* deregister this driver with the USB subsystem */ usb_deregister(&gigaset_usb_driver); /* this will call the disconnect-callback */ /* from now on, no disconnect/probe callback should be running */ gigaset_freedriver(driver); driver = NULL; }