|
@@ -1815,6 +1815,7 @@ static void scsi_finish_async_scan(struct async_scan_data *data)
|
|
}
|
|
}
|
|
spin_unlock(&async_scan_lock);
|
|
spin_unlock(&async_scan_lock);
|
|
|
|
|
|
|
|
+ scsi_autopm_put_host(shost);
|
|
scsi_host_put(shost);
|
|
scsi_host_put(shost);
|
|
kfree(data);
|
|
kfree(data);
|
|
}
|
|
}
|
|
@@ -1841,7 +1842,6 @@ static int do_scan_async(void *_data)
|
|
|
|
|
|
do_scsi_scan_host(shost);
|
|
do_scsi_scan_host(shost);
|
|
scsi_finish_async_scan(data);
|
|
scsi_finish_async_scan(data);
|
|
- scsi_autopm_put_host(shost);
|
|
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1869,7 +1869,7 @@ void scsi_scan_host(struct Scsi_Host *shost)
|
|
p = kthread_run(do_scan_async, data, "scsi_scan_%d", shost->host_no);
|
|
p = kthread_run(do_scan_async, data, "scsi_scan_%d", shost->host_no);
|
|
if (IS_ERR(p))
|
|
if (IS_ERR(p))
|
|
do_scan_async(data);
|
|
do_scan_async(data);
|
|
- /* scsi_autopm_put_host(shost) is called in do_scan_async() */
|
|
|
|
|
|
+ /* scsi_autopm_put_host(shost) is called in scsi_finish_async_scan() */
|
|
}
|
|
}
|
|
EXPORT_SYMBOL(scsi_scan_host);
|
|
EXPORT_SYMBOL(scsi_scan_host);
|
|
|
|
|