]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/scsi/scsi_sysfs.c
[SCSI] fix bsg queue oops with iscsi logout
[linux-2.6-omap-h63xx.git] / drivers / scsi / scsi_sysfs.c
index 00b3866773923c001c44958237020629b6c95027..b9b09a70458435dcc34544555e759cb6b8a0e300 100644 (file)
@@ -294,6 +294,7 @@ static void scsi_device_dev_release_usercontext(struct work_struct *work)
        }
 
        if (sdev->request_queue) {
+               bsg_unregister_queue(sdev->request_queue);
                sdev->request_queue->queuedata = NULL;
                /* user context needed to free queue */
                scsi_free_queue(sdev->request_queue);
@@ -857,7 +858,6 @@ void __scsi_remove_device(struct scsi_device *sdev)
        if (scsi_device_set_state(sdev, SDEV_CANCEL) != 0)
                return;
 
-       bsg_unregister_queue(sdev->request_queue);
        class_device_unregister(&sdev->sdev_classdev);
        transport_remove_device(dev);
        device_del(dev);
@@ -1018,6 +1018,7 @@ int scsi_sysfs_add_host(struct Scsi_Host *shost)
        }
 
        transport_register_device(&shost->shost_gendev);
+       transport_configure_device(&shost->shost_gendev);
        return 0;
 }