]> git.baikalelectronics.ru Git - kernel.git/commitdiff
scsi: megaraid_sas: Fix crash after a double completion
authorTomas Henzl <thenzl@redhat.com>
Fri, 24 Mar 2023 15:01:34 +0000 (16:01 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 5 Apr 2023 09:16:43 +0000 (11:16 +0200)
[ Upstream commit 2309df27111a51734cb9240b4d3c25f2f3c6ab06 ]

When a physical disk is attached directly "without JBOD MAP support" (see
megasas_get_tm_devhandle()) then there is no real error handling in the
driver.  Return FAILED instead of SUCCESS.

Fixes: 6133153a54ec ("megaraid_sas: Task management support")
Signed-off-by: Tomas Henzl <thenzl@redhat.com>
Link: https://lore.kernel.org/r/20230324150134.14696-1-thenzl@redhat.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/scsi/megaraid/megaraid_sas_fusion.c

index 944273f60d22445235d4508d56640d6249b7416b..890002688bd40a437ee032974d829b1c7f1423c0 100644 (file)
@@ -4659,7 +4659,7 @@ int megasas_task_abort_fusion(struct scsi_cmnd *scmd)
        devhandle = megasas_get_tm_devhandle(scmd->device);
 
        if (devhandle == (u16)ULONG_MAX) {
-               ret = SUCCESS;
+               ret = FAILED;
                sdev_printk(KERN_INFO, scmd->device,
                        "task abort issued for invalid devhandle\n");
                mutex_unlock(&instance->reset_mutex);
@@ -4729,7 +4729,7 @@ int megasas_reset_target_fusion(struct scsi_cmnd *scmd)
        devhandle = megasas_get_tm_devhandle(scmd->device);
 
        if (devhandle == (u16)ULONG_MAX) {
-               ret = SUCCESS;
+               ret = FAILED;
                sdev_printk(KERN_INFO, scmd->device,
                        "target reset issued for invalid devhandle\n");
                mutex_unlock(&instance->reset_mutex);