scsi: storvsc: Fix error return in storvsc_probe()
authorJing Xiangfeng <jingxiangfeng@huawei.com>
Fri, 27 Nov 2020 03:02:06 +0000 (11:02 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 1 Dec 2020 04:21:12 +0000 (23:21 -0500)
Return -ENOMEM from the error handling case instead of 0.

Link: https://lore.kernel.org/r/20201127030206.104616-1-jingxiangfeng@huawei.com
Fixes: 436ad9413353 ("scsi: storvsc: Allow only one remove lun work item to be issued per lun")
Reviewed-by: Michael Kelley <mikelley@microsoft.com>
Signed-off-by: Jing Xiangfeng <jingxiangfeng@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/storvsc_drv.c

index 0c65fbd..ded00a8 100644 (file)
@@ -1994,8 +1994,10 @@ static int storvsc_probe(struct hv_device *device,
                        alloc_ordered_workqueue("storvsc_error_wq_%d",
                                                WQ_MEM_RECLAIM,
                                                host->host_no);
-       if (!host_dev->handle_error_wq)
+       if (!host_dev->handle_error_wq) {
+               ret = -ENOMEM;
                goto err_out2;
+       }
        INIT_WORK(&host_dev->host_scan_work, storvsc_host_scan);
        /* Register the HBA and start the scsi bus scan */
        ret = scsi_add_host(host, &device->device);