diff mbox series

scsi: megaraid_sas: fix for a crash after a double completion

Message ID 20230324150134.14696-1-thenzl@redhat.com (mailing list archive)
State Accepted
Headers show
Series scsi: megaraid_sas: fix for a crash after a double completion | expand

Commit Message

Tomas Henzl March 24, 2023, 3:01 p.m. UTC
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: 18365b138508 ("megaraid_sas: Task management support")

Signed-off-by: Tomas Henzl <thenzl@redhat.com>
---
 drivers/scsi/megaraid/megaraid_sas_fusion.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Martin K. Petersen March 25, 2023, 1:16 a.m. UTC | #1
On Fri, 24 Mar 2023 16:01:34 +0100, Tomas Henzl wrote:

> 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: 18365b138508 ("megaraid_sas: Task management support")
> 
> [...]

Applied to 6.3/scsi-fixes, thanks!

[1/1] scsi: megaraid_sas: fix for a crash after a double completion
      https://git.kernel.org/mkp/scsi/c/2309df27111a
diff mbox series

Patch

diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c b/drivers/scsi/megaraid/megaraid_sas_fusion.c
index 6597e118c805..52b71eb3fd34 100644
--- a/drivers/scsi/megaraid/megaraid_sas_fusion.c
+++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c
@@ -4768,7 +4768,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);
@@ -4838,7 +4838,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);