Re: [patch] qla2xxx: use F/W calculated residual length.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Nov 30, 2009, at 5:37 PM, Joe Jin wrote:

Hi,

When comp_status is CS_DATA_OVERRUN, residual length calculated by F/ W, but when comp_status is CS_COMMPLETE, residual length just set to residual
count, at here calculated residual length may via F/W?

In case of good scsi completion with residual flag set, then firmware does not report the residual information, hence, driver depends upon the scsi residual obtained from target. The code does this now.

In case of over-run condition driver reports DID_ERROR to mid layer.

In case of under-run condition, the firmware detects and reports under run length which can be different from what obtained from target. Hence, driver gives preference to firmware reported residual length.



Please review.

Signed-off-by: Joe Jin <joe.jin@xxxxxxxxxx>
CC: Andrew Vasquez <andrew.vasquez@xxxxxxxxxx>

---
qla_isr.c |    2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/ qla_isr.c
index b20a716..4d1d410 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -1398,7 +1398,7 @@ qla2x00_status_entry(scsi_qla_host_t *vha, struct rsp_que *rsp, void *pkt)
			break;
		}
		if (scsi_status & (SS_RESIDUAL_UNDER | SS_RESIDUAL_OVER)) {
-			resid = resid_len;
+			resid = IS_FWI2_CAPABLE(ha) ? fw_resid_len : resid_len;
			scsi_set_resid(cp, resid);

			if (!lscsi_status &&


--
To unsubscribe from this list: send the line "unsubscribe linux- scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux