* [PATCH 1/2] megaraid_sas: Block zero-length ATA VPD inquiry due to firmware bug
@ 2025-04-02 19:37 Chandrakanth Patil
2025-04-02 19:37 ` [PATCH 2/2] megaraid_sas: Driver version update to 07.734.00.00-rc1 Chandrakanth Patil
2025-04-03 15:23 ` [PATCH 1/2] megaraid_sas: Block zero-length ATA VPD inquiry due to firmware bug Martin K. Petersen
0 siblings, 2 replies; 3+ messages in thread
From: Chandrakanth Patil @ 2025-04-02 19:37 UTC (permalink / raw)
To: linux-scsi, martin.petersen
Cc: sathya.prakash, sumit.saxena, ranjan.kumar, prayas.patel,
rajsekhar.chundru, Chandrakanth Patil
There is a firmware bug where ATA VPD inquiry commands with zero data
length are not handled and fail with a non-standard return status code
0xf0.
Hence, the driver blocks zero-length ATA VPD inquiry commands by setting
the device no_vpd_size flag to 1. Additionally, if the firmware still
returns status code 0xf0 in other failure scenarios, the driver converts
it to a SCSI 'check condition' for proper OS handling.
Suggested-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Chandrakanth Patil <chandrakanth.patil@broadcom.com>
---
drivers/scsi/megaraid/megaraid_sas_base.c | 9 +++++++--
drivers/scsi/megaraid/megaraid_sas_fusion.c | 5 ++++-
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c
index 28c75865967a..d793924547f8 100644
--- a/drivers/scsi/megaraid/megaraid_sas_base.c
+++ b/drivers/scsi/megaraid/megaraid_sas_base.c
@@ -2103,6 +2103,9 @@ static int megasas_sdev_configure(struct scsi_device *sdev,
/* This sdev property may change post OCR */
megasas_set_dynamic_target_properties(sdev, lim, is_target_prop);
+ if (!MEGASAS_IS_LOGICAL(sdev))
+ sdev->no_vpd_size = 1;
+
mutex_unlock(&instance->reset_mutex);
return 0;
@@ -3662,8 +3665,10 @@ megasas_complete_cmd(struct megasas_instance *instance, struct megasas_cmd *cmd,
case MFI_STAT_SCSI_IO_FAILED:
case MFI_STAT_LD_INIT_IN_PROGRESS:
- cmd->scmd->result =
- (DID_ERROR << 16) | hdr->scsi_status;
+ if (hdr->scsi_status == 0xf0)
+ cmd->scmd->result = (DID_ERROR << 16) | SAM_STAT_CHECK_CONDITION;
+ else
+ cmd->scmd->result = (DID_ERROR << 16) | hdr->scsi_status;
break;
case MFI_STAT_SCSI_DONE_WITH_ERROR:
diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c b/drivers/scsi/megaraid/megaraid_sas_fusion.c
index 1eec23da28e2..1eea4df9e47d 100644
--- a/drivers/scsi/megaraid/megaraid_sas_fusion.c
+++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c
@@ -2043,7 +2043,10 @@ map_cmd_status(struct fusion_context *fusion,
case MFI_STAT_SCSI_IO_FAILED:
case MFI_STAT_LD_INIT_IN_PROGRESS:
- scmd->result = (DID_ERROR << 16) | ext_status;
+ if (ext_status == 0xf0)
+ scmd->result = (DID_ERROR << 16) | SAM_STAT_CHECK_CONDITION;
+ else
+ scmd->result = (DID_ERROR << 16) | ext_status;
break;
case MFI_STAT_SCSI_DONE_WITH_ERROR:
--
2.39.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] megaraid_sas: Driver version update to 07.734.00.00-rc1
2025-04-02 19:37 [PATCH 1/2] megaraid_sas: Block zero-length ATA VPD inquiry due to firmware bug Chandrakanth Patil
@ 2025-04-02 19:37 ` Chandrakanth Patil
2025-04-03 15:23 ` [PATCH 1/2] megaraid_sas: Block zero-length ATA VPD inquiry due to firmware bug Martin K. Petersen
1 sibling, 0 replies; 3+ messages in thread
From: Chandrakanth Patil @ 2025-04-02 19:37 UTC (permalink / raw)
To: linux-scsi, martin.petersen
Cc: sathya.prakash, sumit.saxena, ranjan.kumar, prayas.patel,
rajsekhar.chundru, Chandrakanth Patil
Signed-off-by: Chandrakanth Patil <chandrakanth.patil@broadcom.com>
---
drivers/scsi/megaraid/megaraid_sas.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/megaraid/megaraid_sas.h b/drivers/scsi/megaraid/megaraid_sas.h
index 088cc40ae866..8ee2bfe47571 100644
--- a/drivers/scsi/megaraid/megaraid_sas.h
+++ b/drivers/scsi/megaraid/megaraid_sas.h
@@ -23,8 +23,8 @@
/*
* MegaRAID SAS Driver meta data
*/
-#define MEGASAS_VERSION "07.727.03.00-rc1"
-#define MEGASAS_RELDATE "Oct 03, 2023"
+#define MEGASAS_VERSION "07.734.00.00-rc1"
+#define MEGASAS_RELDATE "Apr 03, 2025"
#define MEGASAS_MSIX_NAME_LEN 32
--
2.39.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 1/2] megaraid_sas: Block zero-length ATA VPD inquiry due to firmware bug
2025-04-02 19:37 [PATCH 1/2] megaraid_sas: Block zero-length ATA VPD inquiry due to firmware bug Chandrakanth Patil
2025-04-02 19:37 ` [PATCH 2/2] megaraid_sas: Driver version update to 07.734.00.00-rc1 Chandrakanth Patil
@ 2025-04-03 15:23 ` Martin K. Petersen
1 sibling, 0 replies; 3+ messages in thread
From: Martin K. Petersen @ 2025-04-03 15:23 UTC (permalink / raw)
To: Chandrakanth Patil
Cc: linux-scsi, martin.petersen, sathya.prakash, sumit.saxena,
prayas.patel, rajsekhar.chundru, Chandrakanth Patil
Chandrakanth,
> There is a firmware bug where ATA VPD inquiry commands with zero data
> length are not handled and fail with a non-standard return status code
> 0xf0.
Applied to 6.15/scsi-staging. Thanks for getting this fixed, much
appreciated!
--
Martin K. Petersen
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-04-03 15:23 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-02 19:37 [PATCH 1/2] megaraid_sas: Block zero-length ATA VPD inquiry due to firmware bug Chandrakanth Patil
2025-04-02 19:37 ` [PATCH 2/2] megaraid_sas: Driver version update to 07.734.00.00-rc1 Chandrakanth Patil
2025-04-03 15:23 ` [PATCH 1/2] megaraid_sas: Block zero-length ATA VPD inquiry due to firmware bug Martin K. Petersen
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.