[SCSI] megaraid_sas: Update balance count in driver to be in sync of firmware
authorSumit.Saxena@lsi.com <Sumit.Saxena@lsi.com>
Wed, 22 May 2013 07:00:22 +0000 (12:30 +0530)
committerJames Bottomley <JBottomley@Parallels.com>
Tue, 25 Jun 2013 00:22:18 +0000 (17:22 -0700)
Signed-off-by: Sumit Saxena <sumit.saxena@lsi.com>
Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/megaraid/megaraid_sas_fp.c

index a11df82..b06a240 100644 (file)
@@ -503,8 +503,9 @@ u8 megasas_get_best_arm(struct LD_LOAD_BALANCE_INFO *lbInfo, u8 arm, u64 block,
        diff1 = ABS_DIFF(block, lbInfo->last_accessed_block[1]);
        bestArm = (diff0 <= diff1 ? 0 : 1);
 
-       if ((bestArm == arm && pend0 > pend1 + 16)  ||
-           (bestArm != arm && pend1 > pend0 + 16))
+       /*Make balance count from 16 to 4 to keep driver in sync with Firmware*/
+       if ((bestArm == arm && pend0 > pend1 + 4)  ||
+           (bestArm != arm && pend1 > pend0 + 4))
                bestArm ^= 1;
 
        /* Update the last accessed block on the correct pd */