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 );
}
Esempio n. 2
0
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;
}
Esempio n. 4
0
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;
}
Esempio n. 5
0
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
}
Esempio n. 6
0
static void __exit powertecscsi_exit(void)
{
	scsi_unregister_module(MODULE_SCSI_HA, &powertecscsi_template);
}
Esempio n. 7
0
static void __exit piix_exit(void)
{
	scsi_unregister_module(MODULE_SCSI_HA, &piix_sht);
	pci_unregister_driver(&piix_pci_driver);
}
Esempio n. 8
0
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);
}
Esempio n. 10
0
static void __exit sis_exit(void)
{
	scsi_unregister_module(MODULE_SCSI_HA, &sis_sht);
	pci_unregister_driver(&sis_pci_driver);
}
Esempio n. 11
0
static void __exit uli_exit(void)
{
	scsi_unregister_module(MODULE_SCSI_HA, &uli_sht);
	pci_unregister_driver(&uli_pci_driver);
}