scsi: megaraid_sas: Send correct PhysArm to FW for R1 VD downgrade
authorKashyap Desai <kashyap.desai@broadcom.com>
Fri, 21 Oct 2016 13:33:30 +0000 (06:33 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 8 Nov 2016 22:29:57 +0000 (17:29 -0500)
This patch fixes the issue of wrong PhysArm was sent to firmware for R1
VD downgrade.

Signed-off-by: Kiran Kumar Kasturi <kiran-kumar.kasturi@broadcom.com>
Signed-off-by: Sumit Saxena <sumit.saxena@broadcom.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Tomas Henzl <thenzl@redhat.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/megaraid/megaraid_sas_fp.c

index e413113..f237d00 100644 (file)
@@ -782,7 +782,8 @@ static u8 mr_spanset_get_phy_params(struct megasas_instance *instance, u32 ld,
                        (raid->regTypeReqOnRead != REGION_TYPE_UNUSED))))
                        pRAID_Context->regLockFlags = REGION_TYPE_EXCLUSIVE;
                else if (raid->level == 1) {
-                       pd = MR_ArPdGet(arRef, physArm + 1, map);
+                       physArm = physArm + 1;
+                       pd = MR_ArPdGet(arRef, physArm, map);
                        if (pd != MR_PD_INVALID)
                                *pDevHandle = MR_PdDevHandleGet(pd, map);
                }
@@ -879,7 +880,8 @@ u8 MR_GetPhyParams(struct megasas_instance *instance, u32 ld, u64 stripRow,
                        pRAID_Context->regLockFlags = REGION_TYPE_EXCLUSIVE;
                else if (raid->level == 1) {
                        /* Get alternate Pd. */
-                       pd = MR_ArPdGet(arRef, physArm + 1, map);
+                       physArm = physArm + 1;
+                       pd = MR_ArPdGet(arRef, physArm, map);
                        if (pd != MR_PD_INVALID)
                                /* Get dev handle from Pd */
                                *pDevHandle = MR_PdDevHandleGet(pd, map);