scsi: qedf: Fix for the session’s E_D_TOV value
authorJaved Hasan <jhasan@marvell.com>
Mon, 7 Sep 2020 12:14:38 +0000 (05:14 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 9 Sep 2020 03:14:16 +0000 (23:14 -0400)
Firmware expects E_D_TOV field in connection offload parameters as “msec”.
Earlier incorrect value (100ms), was leading to abort from driver in the
case when data frames for read take more than 100ms from target side,
resulting in firmware reporting E_D_TOV expiration.

Link: https://lore.kernel.org/r/20200907121443.5150-4-jhasan@marvell.com
Signed-off-by: Javed Hasan <jhasan@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qedf/qedf_main.c

index 7d8fb8f2f29b455cad50e7037104cd6d096848f6..b9c1740e35ed2a22dc7f8c54dd6fd4d0471064f9 100644 (file)
@@ -1333,7 +1333,7 @@ static int qedf_offload_connection(struct qedf_ctx *qedf,
        ether_addr_copy(conn_info.dst_mac, qedf->ctlr.dest_addr);
 
        conn_info.tx_max_fc_pay_len = fcport->rdata->maxframe_size;
-       conn_info.e_d_tov_timer_val = qedf->lport->e_d_tov / 20;
+       conn_info.e_d_tov_timer_val = qedf->lport->e_d_tov;
        conn_info.rec_tov_timer_val = 3; /* I think this is what E3 was */
        conn_info.rx_max_fc_pay_len = fcport->rdata->maxframe_size;