aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/megaraid
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/megaraid')
-rw-r--r--drivers/scsi/megaraid/megaraid_sas_fp.c3
-rw-r--r--drivers/scsi/megaraid/megaraid_sas_fusion.c14
2 files changed, 15 insertions, 2 deletions
diff --git a/drivers/scsi/megaraid/megaraid_sas_fp.c b/drivers/scsi/megaraid/megaraid_sas_fp.c
index 7cae1c25c9a9..4f72287860ee 100644
--- a/drivers/scsi/megaraid/megaraid_sas_fp.c
+++ b/drivers/scsi/megaraid/megaraid_sas_fp.c
@@ -212,6 +212,9 @@ void MR_PopulateDrvRaidMap(struct megasas_instance *instance)
212 for (i = 0; i < MAX_RAIDMAP_LOGICAL_DRIVES + MAX_RAIDMAP_VIEWS; i++) 212 for (i = 0; i < MAX_RAIDMAP_LOGICAL_DRIVES + MAX_RAIDMAP_VIEWS; i++)
213 pDrvRaidMap->ldTgtIdToLd[i] = 213 pDrvRaidMap->ldTgtIdToLd[i] =
214 (u8)pFwRaidMap->ldTgtIdToLd[i]; 214 (u8)pFwRaidMap->ldTgtIdToLd[i];
215 for (i = (MAX_RAIDMAP_LOGICAL_DRIVES + MAX_RAIDMAP_VIEWS);
216 i < MAX_LOGICAL_DRIVES_EXT; i++)
217 pDrvRaidMap->ldTgtIdToLd[i] = 0xff;
215 for (i = 0; i < ld_count; i++) { 218 for (i = 0; i < ld_count; i++) {
216 pDrvRaidMap->ldSpanMap[i] = pFwRaidMap->ldSpanMap[i]; 219 pDrvRaidMap->ldSpanMap[i] = pFwRaidMap->ldSpanMap[i];
217#if VD_EXT_DEBUG 220#if VD_EXT_DEBUG
diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c b/drivers/scsi/megaraid/megaraid_sas_fusion.c
index af5ab9e5e8e5..7b23d347b69c 100644
--- a/drivers/scsi/megaraid/megaraid_sas_fusion.c
+++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c
@@ -1725,9 +1725,19 @@ megasas_build_dcdb_fusion(struct megasas_instance *instance,
1725 if (scmd->device->channel < MEGASAS_MAX_PD_CHANNELS) 1725 if (scmd->device->channel < MEGASAS_MAX_PD_CHANNELS)
1726 goto NonFastPath; 1726 goto NonFastPath;
1727 1727
1728 /*
1729 * For older firmware, Driver should not access ldTgtIdToLd
1730 * beyond index 127 and for Extended VD firmware, ldTgtIdToLd
1731 * should not go beyond 255.
1732 */
1733
1734 if ((!fusion->fast_path_io) ||
1735 (device_id >= instance->fw_supported_vd_count))
1736 goto NonFastPath;
1737
1728 ld = MR_TargetIdToLdGet(device_id, local_map_ptr); 1738 ld = MR_TargetIdToLdGet(device_id, local_map_ptr);
1729 if ((ld >= instance->fw_supported_vd_count) || 1739
1730 (!fusion->fast_path_io)) 1740 if (ld >= instance->fw_supported_vd_count)
1731 goto NonFastPath; 1741 goto NonFastPath;
1732 1742
1733 raid = MR_LdRaidGet(ld, local_map_ptr); 1743 raid = MR_LdRaidGet(ld, local_map_ptr);