static void mts_remove_nolock( struct mts_desc* to_remove ) { MTS_DEBUG( "removing 0x%x from list\n", (int)to_remove ); lock_kernel(); mts_urb_abort(to_remove); MTS_DEBUG_GOT_HERE(); if ( to_remove != mts_list ) { MTS_DEBUG_GOT_HERE(); if (to_remove->prev && to_remove->next) to_remove->prev->next = to_remove->next; } else { MTS_DEBUG_GOT_HERE(); mts_list = to_remove->next; if (mts_list) { MTS_DEBUG_GOT_HERE(); mts_list->prev = 0; } } if ( to_remove->next ) { MTS_DEBUG_GOT_HERE(); to_remove->next->prev = to_remove->prev; } MTS_DEBUG_GOT_HERE(); scsi_unregister_module(MODULE_SCSI_HA, &(to_remove->ctempl)); unlock_kernel(); kfree( to_remove ); }
static int __init powertecscsi_init(void) { scsi_register_module(MODULE_SCSI_HA, &powertecscsi_template); if (powertecscsi_template.present) return 0; scsi_unregister_module(MODULE_SCSI_HA, &powertecscsi_template); return -ENODEV; }
static int __init init_this_scsi_driver(void) { driver_template.module = THIS_MODULE; scsi_register_module(MODULE_SCSI_HA, &driver_template); if (driver_template.present) return 0; scsi_unregister_module(MODULE_SCSI_HA, &driver_template); return -ENODEV; }
static void __exit exit_this_scst_driver(void) { TRACE_ENTRY(); #ifdef SCST_REGISTER_INITIATOR_DRIVER scsi_unregister_module(MODULE_SCSI_HA, &driver_template); #endif scst_unregister_target_template(&driver_target_template); TRACE_EXIT(); return; }
void cleanup_module( void) { scsi_unregister_module(MODULE_SCSI_DEV, &sg_template); unregister_chrdev(SCSI_GENERIC_MAJOR, "sg"); if(scsi_generics != NULL) { scsi_init_free((char *) scsi_generics, (sg_template.dev_noticed + SG_EXTRA_DEVS) * sizeof(struct scsi_generic)); } sg_template.dev_max = 0; #ifdef SG_BIG_BUFF if(big_buff != NULL) scsi_init_free(big_buff, SG_BIG_BUFF); #endif }
static void __exit powertecscsi_exit(void) { scsi_unregister_module(MODULE_SCSI_HA, &powertecscsi_template); }
static void __exit piix_exit(void) { scsi_unregister_module(MODULE_SCSI_HA, &piix_sht); pci_unregister_driver(&piix_pci_driver); }
static void __exit cumanascsi_exit(void) { scsi_unregister_module(MODULE_SCSI_HA, &cumanascsi_template); }
static void __exit exit_this_scsi_driver(void) { scsi_unregister_module(MODULE_SCSI_HA, &driver_template); }
static void __exit sis_exit(void) { scsi_unregister_module(MODULE_SCSI_HA, &sis_sht); pci_unregister_driver(&sis_pci_driver); }
static void __exit uli_exit(void) { scsi_unregister_module(MODULE_SCSI_HA, &uli_sht); pci_unregister_driver(&uli_pci_driver); }