scsi: mpt3sas: Fix error return value in _scsih_expander_add()
authorZhen Lei <thunder.leizhen@huawei.com>
Fri, 14 May 2021 08:13:00 +0000 (16:13 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 14 Jul 2021 14:56:47 +0000 (16:56 +0200)
[ Upstream commit d6c2ce435ffe23ef7f395ae76ec747414589db46 ]

When an expander does not contain any 'phys', an appropriate error code -1
should be returned, as done elsewhere in this function. However, we
currently do not explicitly assign this error code to 'rc'. As a result, 0
was incorrectly returned.

Link: https://lore.kernel.org/r/20210514081300.6650-1-thunder.leizhen@huawei.com
Fixes: f92363d12359 ("[SCSI] mpt3sas: add new driver supporting 12GB SAS")
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/scsi/mpt3sas/mpt3sas_scsih.c

index 5f845d7..008f734 100644 (file)
@@ -6007,8 +6007,10 @@ _scsih_expander_add(struct MPT3SAS_ADAPTER *ioc, u16 handle)
                 handle, parent_handle,
                 (u64)sas_expander->sas_address, sas_expander->num_phys);
 
-       if (!sas_expander->num_phys)
+       if (!sas_expander->num_phys) {
+               rc = -1;
                goto out_fail;
+       }
        sas_expander->phy = kcalloc(sas_expander->num_phys,
            sizeof(struct _sas_phy), GFP_KERNEL);
        if (!sas_expander->phy) {