diff options
author | Varun Prakash <varun@chelsio.com> | 2017-01-13 20:53:23 +0530 |
---|---|---|
committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2017-02-18 21:24:19 -0800 |
commit | d88b504e413e7d1471562ff9c3311dbf983e0291 (patch) | |
tree | 0333bc8de26a5d9b0719dc994e62bb9c577d85f8 | |
parent | 3da1110fd1ac3e11208f12c966c6de7a2c306b9d (diff) | |
download | talos-obmc-linux-d88b504e413e7d1471562ff9c3311dbf983e0291.tar.gz talos-obmc-linux-d88b504e413e7d1471562ff9c3311dbf983e0291.zip |
target/cxgbit: Use T6 specific macros to get ETH/IP hdr len
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>
-rw-r--r-- | drivers/target/iscsi/cxgbit/cxgbit_cm.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/target/iscsi/cxgbit/cxgbit_cm.c b/drivers/target/iscsi/cxgbit/cxgbit_cm.c index 845a7de39b9c..b26c85a65b80 100644 --- a/drivers/target/iscsi/cxgbit/cxgbit_cm.c +++ b/drivers/target/iscsi/cxgbit/cxgbit_cm.c @@ -1068,6 +1068,7 @@ cxgbit_pass_accept_rpl(struct cxgbit_sock *csk, struct cpl_pass_accept_req *req) struct sk_buff *skb; const struct tcphdr *tcph; struct cpl_t5_pass_accept_rpl *rpl5; + struct cxgb4_lld_info *lldi = &csk->com.cdev->lldi; unsigned int len = roundup(sizeof(*rpl5), 16); unsigned int mtu_idx; u64 opt0; @@ -1121,8 +1122,13 @@ cxgbit_pass_accept_rpl(struct cxgbit_sock *csk, struct cpl_pass_accept_req *req) opt2 |= WND_SCALE_EN_F; hlen = ntohl(req->hdr_len); - tcph = (const void *)(req + 1) + ETH_HDR_LEN_G(hlen) + - IP_HDR_LEN_G(hlen); + + if (is_t5(lldi->adapter_type)) + tcph = (struct tcphdr *)((u8 *)(req + 1) + + ETH_HDR_LEN_G(hlen) + IP_HDR_LEN_G(hlen)); + else + tcph = (struct tcphdr *)((u8 *)(req + 1) + + T6_ETH_HDR_LEN_G(hlen) + T6_IP_HDR_LEN_G(hlen)); if (tcph->ece && tcph->cwr) opt2 |= CCTRL_ECN_V(1); |