aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/target/iscsi/cxgbit/cxgbit_lro.h
diff options
context:
space:
mode:
authorVarun Prakash <varun@chelsio.com>2017-01-13 20:53:25 +0530
committerNicholas Bellinger <nab@linux-iscsi.org>2017-02-18 21:24:21 -0800
commit79e57cfe00f40d509e2d007a5662db26cdbc74db (patch)
treeb025ff0ba094a6a9c6a40ef0811237f9dcfbbbb4 /drivers/target/iscsi/cxgbit/cxgbit_lro.h
parenttarget/cxgbit: Enable DDP for T6 only if data sequence and pdu are in order (diff)
downloadlinux-dev-79e57cfe00f40d509e2d007a5662db26cdbc74db.tar.xz
linux-dev-79e57cfe00f40d509e2d007a5662db26cdbc74db.zip
target/cxgbit: add T6 iSCSI DDP completion feature
Chelsio T6 adapters reduce number of completion to host by generating single completion for all directly placed(DDP) iSCSI pdus in a sequence, completion contains iSCSI hdr of the last pdu in a sequence. On receiving DDP completion cxgbit driver finds iSCSI cmd using iscsit_find_cmd_from_itt_or_dump(), then updates cmd->write_data_done, cmd->next_burst_len, cmd->data_sn and calls __iscsit_check_dataout_hdr() to validate iSCSI hdr. (Update __iscsit_check_dataout_hdr parameter usage - nab) Signed-off-by: Varun Prakash <varun@chelsio.com> Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'drivers/target/iscsi/cxgbit/cxgbit_lro.h')
-rw-r--r--drivers/target/iscsi/cxgbit/cxgbit_lro.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/target/iscsi/cxgbit/cxgbit_lro.h b/drivers/target/iscsi/cxgbit/cxgbit_lro.h
index 28c11bd1b930..dcaed3a1d23f 100644
--- a/drivers/target/iscsi/cxgbit/cxgbit_lro.h
+++ b/drivers/target/iscsi/cxgbit/cxgbit_lro.h
@@ -31,8 +31,9 @@ enum cxgbit_pducb_flags {
PDUCBF_RX_DATA = (1 << 1), /* received pdu payload */
PDUCBF_RX_STATUS = (1 << 2), /* received ddp status */
PDUCBF_RX_DATA_DDPD = (1 << 3), /* pdu payload ddp'd */
- PDUCBF_RX_HCRC_ERR = (1 << 4), /* header digest error */
- PDUCBF_RX_DCRC_ERR = (1 << 5), /* data digest error */
+ PDUCBF_RX_DDP_CMP = (1 << 4), /* ddp completion */
+ PDUCBF_RX_HCRC_ERR = (1 << 5), /* header digest error */
+ PDUCBF_RX_DCRC_ERR = (1 << 6), /* data digest error */
};
struct cxgbit_lro_pdu_cb {