diff options
Diffstat (limited to 'drivers/scsi/hosts.c')
| -rw-r--r-- | drivers/scsi/hosts.c | 9 | 
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c index a3a056a9db6..593085a5227 100644 --- a/drivers/scsi/hosts.c +++ b/drivers/scsi/hosts.c @@ -42,7 +42,7 @@  #include "scsi_logging.h" -static atomic_t scsi_host_next_hn;	/* host_no for next new host */ +static atomic_t scsi_host_next_hn = ATOMIC_INIT(0);	/* host_no for next new host */  static void scsi_host_cls_release(struct device *dev) @@ -290,6 +290,7 @@ static void scsi_host_dev_release(struct device *dev)  	struct Scsi_Host *shost = dev_to_shost(dev);  	struct device *parent = dev->parent;  	struct request_queue *q; +	void *queuedata;  	scsi_proc_hostdir_rm(shost->hostt); @@ -299,9 +300,9 @@ static void scsi_host_dev_release(struct device *dev)  		destroy_workqueue(shost->work_q);  	q = shost->uspace_req_q;  	if (q) { -		kfree(q->queuedata); -		q->queuedata = NULL; -		scsi_free_queue(q); +		queuedata = q->queuedata; +		blk_cleanup_queue(q); +		kfree(queuedata);  	}  	scsi_destroy_command_freelist(shost);  |