aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHariprasad Shenai <hariprasad@chelsio.com>2015-01-09 00:38:15 -0500
committerDavid S. Miller <davem@davemloft.net>2015-01-12 16:19:34 -0500
commit6c53e938a81c0b31f9f6a31690c3be601aa8fa60 (patch)
treedf5a8183db7bcdc0dd26eee17fb09ac5afd7d23a
parentf902e8812ef657c6cf744ac25e21865217155460 (diff)
iw_cxgb4/cxgb4/cxgb4i: Cleanup register defines/MACROS related to CM CPL messages
This patch cleanups all macros/register define related to connection management CPL messages that are defined in t4_msg.h and the affected files Signed-off-by: Anish Bhatt <anish@chelsio.com> Signed-off-by: Hariprasad Shenai <hariprasad@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/infiniband/hw/cxgb4/cm.c78
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c8
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/l2t.c2
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/t4_msg.h168
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c2
-rw-r--r--drivers/scsi/cxgbi/cxgb4i/cxgb4i.c12
6 files changed, 183 insertions, 87 deletions
diff --git a/drivers/infiniband/hw/cxgb4/cm.c b/drivers/infiniband/hw/cxgb4/cm.c
index 9edc200b311d..87872795c94f 100644
--- a/drivers/infiniband/hw/cxgb4/cm.c
+++ b/drivers/infiniband/hw/cxgb4/cm.c
@@ -235,19 +235,19 @@ static void release_tid(struct c4iw_rdev *rdev, u32 hwtid, struct sk_buff *skb)
235 235
236static void set_emss(struct c4iw_ep *ep, u16 opt) 236static void set_emss(struct c4iw_ep *ep, u16 opt)
237{ 237{
238 ep->emss = ep->com.dev->rdev.lldi.mtus[GET_TCPOPT_MSS(opt)] - 238 ep->emss = ep->com.dev->rdev.lldi.mtus[TCPOPT_MSS_G(opt)] -
239 ((AF_INET == ep->com.remote_addr.ss_family) ? 239 ((AF_INET == ep->com.remote_addr.ss_family) ?
240 sizeof(struct iphdr) : sizeof(struct ipv6hdr)) - 240 sizeof(struct iphdr) : sizeof(struct ipv6hdr)) -
241 sizeof(struct tcphdr); 241 sizeof(struct tcphdr);
242 ep->mss = ep->emss; 242 ep->mss = ep->emss;
243 if (GET_TCPOPT_TSTAMP(opt)) 243 if (TCPOPT_TSTAMP_G(opt))
244 ep->emss -= round_up(TCPOLEN_TIMESTAMP, 4); 244 ep->emss -= round_up(TCPOLEN_TIMESTAMP, 4);
245 if (ep->emss < 128) 245 if (ep->emss < 128)
246 ep->emss = 128; 246 ep->emss = 128;
247 if (ep->emss & 7) 247 if (ep->emss & 7)
248 PDBG("Warning: misaligned mtu idx %u mss %u emss=%u\n", 248 PDBG("Warning: misaligned mtu idx %u mss %u emss=%u\n",
249 GET_TCPOPT_MSS(opt), ep->mss, ep->emss); 249 TCPOPT_MSS_G(opt), ep->mss, ep->emss);
250 PDBG("%s mss_idx %u mss %u emss=%u\n", __func__, GET_TCPOPT_MSS(opt), 250 PDBG("%s mss_idx %u mss %u emss=%u\n", __func__, TCPOPT_MSS_G(opt),
251 ep->mss, ep->emss); 251 ep->mss, ep->emss);
252} 252}
253 253
@@ -652,24 +652,24 @@ static int send_connect(struct c4iw_ep *ep)
652 if (win > RCV_BUFSIZ_M) 652 if (win > RCV_BUFSIZ_M)
653 win = RCV_BUFSIZ_M; 653 win = RCV_BUFSIZ_M;
654 654
655 opt0 = (nocong ? NO_CONG(1) : 0) | 655 opt0 = (nocong ? NO_CONG_F : 0) |
656 KEEP_ALIVE_F | 656 KEEP_ALIVE_F |
657 DELACK(1) | 657 DELACK_F |
658 WND_SCALE_V(wscale) | 658 WND_SCALE_V(wscale) |
659 MSS_IDX_V(mtu_idx) | 659 MSS_IDX_V(mtu_idx) |
660 L2T_IDX_V(ep->l2t->idx) | 660 L2T_IDX_V(ep->l2t->idx) |
661 TX_CHAN_V(ep->tx_chan) | 661 TX_CHAN_V(ep->tx_chan) |
662 SMAC_SEL_V(ep->smac_idx) | 662 SMAC_SEL_V(ep->smac_idx) |
663 DSCP(ep->tos) | 663 DSCP_V(ep->tos) |
664 ULP_MODE_V(ULP_MODE_TCPDDP) | 664 ULP_MODE_V(ULP_MODE_TCPDDP) |
665 RCV_BUFSIZ_V(win); 665 RCV_BUFSIZ_V(win);
666 opt2 = RX_CHANNEL_V(0) | 666 opt2 = RX_CHANNEL_V(0) |
667 CCTRL_ECN(enable_ecn) | 667 CCTRL_ECN_V(enable_ecn) |
668 RSS_QUEUE_VALID_F | RSS_QUEUE_V(ep->rss_qid); 668 RSS_QUEUE_VALID_F | RSS_QUEUE_V(ep->rss_qid);
669 if (enable_tcp_timestamps) 669 if (enable_tcp_timestamps)
670 opt2 |= TSTAMPS_EN(1); 670 opt2 |= TSTAMPS_EN_F;
671 if (enable_tcp_sack) 671 if (enable_tcp_sack)
672 opt2 |= SACK_EN(1); 672 opt2 |= SACK_EN_F;
673 if (wscale && enable_tcp_window_scaling) 673 if (wscale && enable_tcp_window_scaling)
674 opt2 |= WND_SCALE_EN_F; 674 opt2 |= WND_SCALE_EN_F;
675 if (is_t5(ep->com.dev->rdev.lldi.adapter_type)) { 675 if (is_t5(ep->com.dev->rdev.lldi.adapter_type)) {
@@ -1042,7 +1042,7 @@ static int act_establish(struct c4iw_dev *dev, struct sk_buff *skb)
1042 struct c4iw_ep *ep; 1042 struct c4iw_ep *ep;
1043 struct cpl_act_establish *req = cplhdr(skb); 1043 struct cpl_act_establish *req = cplhdr(skb);
1044 unsigned int tid = GET_TID(req); 1044 unsigned int tid = GET_TID(req);
1045 unsigned int atid = GET_TID_TID(ntohl(req->tos_atid)); 1045 unsigned int atid = TID_TID_G(ntohl(req->tos_atid));
1046 struct tid_info *t = dev->rdev.lldi.tids; 1046 struct tid_info *t = dev->rdev.lldi.tids;
1047 1047
1048 ep = lookup_atid(t, atid); 1048 ep = lookup_atid(t, atid);
@@ -1751,7 +1751,7 @@ static void send_fw_act_open_req(struct c4iw_ep *ep, unsigned int atid)
1751 skb = get_skb(NULL, sizeof(*req), GFP_KERNEL); 1751 skb = get_skb(NULL, sizeof(*req), GFP_KERNEL);
1752 req = (struct fw_ofld_connection_wr *)__skb_put(skb, sizeof(*req)); 1752 req = (struct fw_ofld_connection_wr *)__skb_put(skb, sizeof(*req));
1753 memset(req, 0, sizeof(*req)); 1753 memset(req, 0, sizeof(*req));
1754 req->op_compl = htonl(V_WR_OP(FW_OFLD_CONNECTION_WR)); 1754 req->op_compl = htonl(WR_OP_V(FW_OFLD_CONNECTION_WR));
1755 req->len16_pkd = htonl(FW_WR_LEN16_V(DIV_ROUND_UP(sizeof(*req), 16))); 1755 req->len16_pkd = htonl(FW_WR_LEN16_V(DIV_ROUND_UP(sizeof(*req), 16)));
1756 req->le.filter = cpu_to_be32(cxgb4_select_ntuple( 1756 req->le.filter = cpu_to_be32(cxgb4_select_ntuple(
1757 ep->com.dev->rdev.lldi.ports[0], 1757 ep->com.dev->rdev.lldi.ports[0],
@@ -1782,27 +1782,27 @@ static void send_fw_act_open_req(struct c4iw_ep *ep, unsigned int atid)
1782 if (win > RCV_BUFSIZ_M) 1782 if (win > RCV_BUFSIZ_M)
1783 win = RCV_BUFSIZ_M; 1783 win = RCV_BUFSIZ_M;
1784 1784
1785 req->tcb.opt0 = (__force __be64) (TCAM_BYPASS(1) | 1785 req->tcb.opt0 = (__force __be64) (TCAM_BYPASS_F |
1786 (nocong ? NO_CONG(1) : 0) | 1786 (nocong ? NO_CONG_F : 0) |
1787 KEEP_ALIVE_F | 1787 KEEP_ALIVE_F |
1788 DELACK(1) | 1788 DELACK_F |
1789 WND_SCALE_V(wscale) | 1789 WND_SCALE_V(wscale) |
1790 MSS_IDX_V(mtu_idx) | 1790 MSS_IDX_V(mtu_idx) |
1791 L2T_IDX_V(ep->l2t->idx) | 1791 L2T_IDX_V(ep->l2t->idx) |
1792 TX_CHAN_V(ep->tx_chan) | 1792 TX_CHAN_V(ep->tx_chan) |
1793 SMAC_SEL_V(ep->smac_idx) | 1793 SMAC_SEL_V(ep->smac_idx) |
1794 DSCP(ep->tos) | 1794 DSCP_V(ep->tos) |
1795 ULP_MODE_V(ULP_MODE_TCPDDP) | 1795 ULP_MODE_V(ULP_MODE_TCPDDP) |
1796 RCV_BUFSIZ_V(win)); 1796 RCV_BUFSIZ_V(win));
1797 req->tcb.opt2 = (__force __be32) (PACE(1) | 1797 req->tcb.opt2 = (__force __be32) (PACE_V(1) |
1798 TX_QUEUE(ep->com.dev->rdev.lldi.tx_modq[ep->tx_chan]) | 1798 TX_QUEUE_V(ep->com.dev->rdev.lldi.tx_modq[ep->tx_chan]) |
1799 RX_CHANNEL_V(0) | 1799 RX_CHANNEL_V(0) |
1800 CCTRL_ECN(enable_ecn) | 1800 CCTRL_ECN_V(enable_ecn) |
1801 RSS_QUEUE_VALID_F | RSS_QUEUE_V(ep->rss_qid)); 1801 RSS_QUEUE_VALID_F | RSS_QUEUE_V(ep->rss_qid));
1802 if (enable_tcp_timestamps) 1802 if (enable_tcp_timestamps)
1803 req->tcb.opt2 |= (__force __be32)TSTAMPS_EN(1); 1803 req->tcb.opt2 |= (__force __be32)TSTAMPS_EN_F;
1804 if (enable_tcp_sack) 1804 if (enable_tcp_sack)
1805 req->tcb.opt2 |= (__force __be32)SACK_EN(1); 1805 req->tcb.opt2 |= (__force __be32)SACK_EN_F;
1806 if (wscale && enable_tcp_window_scaling) 1806 if (wscale && enable_tcp_window_scaling)
1807 req->tcb.opt2 |= (__force __be32)WND_SCALE_EN_F; 1807 req->tcb.opt2 |= (__force __be32)WND_SCALE_EN_F;
1808 req->tcb.opt0 = cpu_to_be64((__force u64)req->tcb.opt0); 1808 req->tcb.opt0 = cpu_to_be64((__force u64)req->tcb.opt0);
@@ -2023,10 +2023,10 @@ static int act_open_rpl(struct c4iw_dev *dev, struct sk_buff *skb)
2023{ 2023{
2024 struct c4iw_ep *ep; 2024 struct c4iw_ep *ep;
2025 struct cpl_act_open_rpl *rpl = cplhdr(skb); 2025 struct cpl_act_open_rpl *rpl = cplhdr(skb);
2026 unsigned int atid = GET_TID_TID(GET_AOPEN_ATID( 2026 unsigned int atid = TID_TID_G(AOPEN_ATID_G(
2027 ntohl(rpl->atid_status))); 2027 ntohl(rpl->atid_status)));
2028 struct tid_info *t = dev->rdev.lldi.tids; 2028 struct tid_info *t = dev->rdev.lldi.tids;
2029 int status = GET_AOPEN_STATUS(ntohl(rpl->atid_status)); 2029 int status = AOPEN_STATUS_G(ntohl(rpl->atid_status));
2030 struct sockaddr_in *la; 2030 struct sockaddr_in *la;
2031 struct sockaddr_in *ra; 2031 struct sockaddr_in *ra;
2032 struct sockaddr_in6 *la6; 2032 struct sockaddr_in6 *la6;
@@ -2064,7 +2064,7 @@ static int act_open_rpl(struct c4iw_dev *dev, struct sk_buff *skb)
2064 if (ep->com.local_addr.ss_family == AF_INET && 2064 if (ep->com.local_addr.ss_family == AF_INET &&
2065 dev->rdev.lldi.enable_fw_ofld_conn) { 2065 dev->rdev.lldi.enable_fw_ofld_conn) {
2066 send_fw_act_open_req(ep, 2066 send_fw_act_open_req(ep,
2067 GET_TID_TID(GET_AOPEN_ATID( 2067 TID_TID_G(AOPEN_ATID_G(
2068 ntohl(rpl->atid_status)))); 2068 ntohl(rpl->atid_status))));
2069 return 0; 2069 return 0;
2070 } 2070 }
@@ -2181,24 +2181,24 @@ static void accept_cr(struct c4iw_ep *ep, struct sk_buff *skb,
2181 win = ep->rcv_win >> 10; 2181 win = ep->rcv_win >> 10;
2182 if (win > RCV_BUFSIZ_M) 2182 if (win > RCV_BUFSIZ_M)
2183 win = RCV_BUFSIZ_M; 2183 win = RCV_BUFSIZ_M;
2184 opt0 = (nocong ? NO_CONG(1) : 0) | 2184 opt0 = (nocong ? NO_CONG_F : 0) |
2185 KEEP_ALIVE_F | 2185 KEEP_ALIVE_F |
2186 DELACK(1) | 2186 DELACK_F |
2187 WND_SCALE_V(wscale) | 2187 WND_SCALE_V(wscale) |
2188 MSS_IDX_V(mtu_idx) | 2188 MSS_IDX_V(mtu_idx) |
2189 L2T_IDX_V(ep->l2t->idx) | 2189 L2T_IDX_V(ep->l2t->idx) |
2190 TX_CHAN_V(ep->tx_chan) | 2190 TX_CHAN_V(ep->tx_chan) |
2191 SMAC_SEL_V(ep->smac_idx) | 2191 SMAC_SEL_V(ep->smac_idx) |
2192 DSCP(ep->tos >> 2) | 2192 DSCP_V(ep->tos >> 2) |
2193 ULP_MODE_V(ULP_MODE_TCPDDP) | 2193 ULP_MODE_V(ULP_MODE_TCPDDP) |
2194 RCV_BUFSIZ_V(win); 2194 RCV_BUFSIZ_V(win);
2195 opt2 = RX_CHANNEL_V(0) | 2195 opt2 = RX_CHANNEL_V(0) |
2196 RSS_QUEUE_VALID_F | RSS_QUEUE_V(ep->rss_qid); 2196 RSS_QUEUE_VALID_F | RSS_QUEUE_V(ep->rss_qid);
2197 2197
2198 if (enable_tcp_timestamps && req->tcpopt.tstamp) 2198 if (enable_tcp_timestamps && req->tcpopt.tstamp)
2199 opt2 |= TSTAMPS_EN(1); 2199 opt2 |= TSTAMPS_EN_F;
2200 if (enable_tcp_sack && req->tcpopt.sack) 2200 if (enable_tcp_sack && req->tcpopt.sack)
2201 opt2 |= SACK_EN(1); 2201 opt2 |= SACK_EN_F;
2202 if (wscale && enable_tcp_window_scaling) 2202 if (wscale && enable_tcp_window_scaling)
2203 opt2 |= WND_SCALE_EN_F; 2203 opt2 |= WND_SCALE_EN_F;
2204 if (enable_ecn) { 2204 if (enable_ecn) {
@@ -2208,7 +2208,7 @@ static void accept_cr(struct c4iw_ep *ep, struct sk_buff *skb,
2208 tcph = (const void *)(req + 1) + G_ETH_HDR_LEN(hlen) + 2208 tcph = (const void *)(req + 1) + G_ETH_HDR_LEN(hlen) +
2209 G_IP_HDR_LEN(hlen); 2209 G_IP_HDR_LEN(hlen);
2210 if (tcph->ece && tcph->cwr) 2210 if (tcph->ece && tcph->cwr)
2211 opt2 |= CCTRL_ECN(1); 2211 opt2 |= CCTRL_ECN_V(1);
2212 } 2212 }
2213 if (is_t5(ep->com.dev->rdev.lldi.adapter_type)) { 2213 if (is_t5(ep->com.dev->rdev.lldi.adapter_type)) {
2214 u32 isn = (prandom_u32() & ~7UL) - 1; 2214 u32 isn = (prandom_u32() & ~7UL) - 1;
@@ -2277,7 +2277,7 @@ static int pass_accept_req(struct c4iw_dev *dev, struct sk_buff *skb)
2277{ 2277{
2278 struct c4iw_ep *child_ep = NULL, *parent_ep; 2278 struct c4iw_ep *child_ep = NULL, *parent_ep;
2279 struct cpl_pass_accept_req *req = cplhdr(skb); 2279 struct cpl_pass_accept_req *req = cplhdr(skb);
2280 unsigned int stid = GET_POPEN_TID(ntohl(req->tos_stid)); 2280 unsigned int stid = PASS_OPEN_TID_G(ntohl(req->tos_stid));
2281 struct tid_info *t = dev->rdev.lldi.tids; 2281 struct tid_info *t = dev->rdev.lldi.tids;
2282 unsigned int hwtid = GET_TID(req); 2282 unsigned int hwtid = GET_TID(req);
2283 struct dst_entry *dst; 2283 struct dst_entry *dst;
@@ -2310,14 +2310,14 @@ static int pass_accept_req(struct c4iw_dev *dev, struct sk_buff *skb)
2310 ntohs(peer_port), peer_mss); 2310 ntohs(peer_port), peer_mss);
2311 dst = find_route(dev, *(__be32 *)local_ip, *(__be32 *)peer_ip, 2311 dst = find_route(dev, *(__be32 *)local_ip, *(__be32 *)peer_ip,
2312 local_port, peer_port, 2312 local_port, peer_port,
2313 GET_POPEN_TOS(ntohl(req->tos_stid))); 2313 PASS_OPEN_TOS_G(ntohl(req->tos_stid)));
2314 } else { 2314 } else {
2315 PDBG("%s parent ep %p hwtid %u laddr %pI6 raddr %pI6 lport %d rport %d peer_mss %d\n" 2315 PDBG("%s parent ep %p hwtid %u laddr %pI6 raddr %pI6 lport %d rport %d peer_mss %d\n"
2316 , __func__, parent_ep, hwtid, 2316 , __func__, parent_ep, hwtid,
2317 local_ip, peer_ip, ntohs(local_port), 2317 local_ip, peer_ip, ntohs(local_port),
2318 ntohs(peer_port), peer_mss); 2318 ntohs(peer_port), peer_mss);
2319 dst = find_route6(dev, local_ip, peer_ip, local_port, peer_port, 2319 dst = find_route6(dev, local_ip, peer_ip, local_port, peer_port,
2320 PASS_OPEN_TOS(ntohl(req->tos_stid)), 2320 PASS_OPEN_TOS_G(ntohl(req->tos_stid)),
2321 ((struct sockaddr_in6 *) 2321 ((struct sockaddr_in6 *)
2322 &parent_ep->com.local_addr)->sin6_scope_id); 2322 &parent_ep->com.local_addr)->sin6_scope_id);
2323 } 2323 }
@@ -2375,7 +2375,7 @@ static int pass_accept_req(struct c4iw_dev *dev, struct sk_buff *skb)
2375 } 2375 }
2376 c4iw_get_ep(&parent_ep->com); 2376 c4iw_get_ep(&parent_ep->com);
2377 child_ep->parent_ep = parent_ep; 2377 child_ep->parent_ep = parent_ep;
2378 child_ep->tos = GET_POPEN_TOS(ntohl(req->tos_stid)); 2378 child_ep->tos = PASS_OPEN_TOS_G(ntohl(req->tos_stid));
2379 child_ep->dst = dst; 2379 child_ep->dst = dst;
2380 child_ep->hwtid = hwtid; 2380 child_ep->hwtid = hwtid;
2381 2381
@@ -3516,8 +3516,8 @@ static void build_cpl_pass_accept_req(struct sk_buff *skb, int stid , u8 tos)
3516 V_ETH_HDR_LEN(G_RX_ETHHDR_LEN(eth_hdr_len))); 3516 V_ETH_HDR_LEN(G_RX_ETHHDR_LEN(eth_hdr_len)));
3517 req->vlan = (__force __be16) vlantag; 3517 req->vlan = (__force __be16) vlantag;
3518 req->len = (__force __be16) len; 3518 req->len = (__force __be16) len;
3519 req->tos_stid = cpu_to_be32(PASS_OPEN_TID(stid) | 3519 req->tos_stid = cpu_to_be32(PASS_OPEN_TID_V(stid) |
3520 PASS_OPEN_TOS(tos)); 3520 PASS_OPEN_TOS_V(tos));
3521 req->tcpopt.mss = htons(tmp_opt.mss_clamp); 3521 req->tcpopt.mss = htons(tmp_opt.mss_clamp);
3522 if (tmp_opt.wscale_ok) 3522 if (tmp_opt.wscale_ok)
3523 req->tcpopt.wsf = tmp_opt.snd_wscale; 3523 req->tcpopt.wsf = tmp_opt.snd_wscale;
@@ -3542,7 +3542,7 @@ static void send_fw_pass_open_req(struct c4iw_dev *dev, struct sk_buff *skb,
3542 req_skb = alloc_skb(sizeof(struct fw_ofld_connection_wr), GFP_KERNEL); 3542 req_skb = alloc_skb(sizeof(struct fw_ofld_connection_wr), GFP_KERNEL);
3543 req = (struct fw_ofld_connection_wr *)__skb_put(req_skb, sizeof(*req)); 3543 req = (struct fw_ofld_connection_wr *)__skb_put(req_skb, sizeof(*req));
3544 memset(req, 0, sizeof(*req)); 3544 memset(req, 0, sizeof(*req));
3545 req->op_compl = htonl(V_WR_OP(FW_OFLD_CONNECTION_WR) | FW_WR_COMPL_F); 3545 req->op_compl = htonl(WR_OP_V(FW_OFLD_CONNECTION_WR) | FW_WR_COMPL_F);
3546 req->len16_pkd = htonl(FW_WR_LEN16_V(DIV_ROUND_UP(sizeof(*req), 16))); 3546 req->len16_pkd = htonl(FW_WR_LEN16_V(DIV_ROUND_UP(sizeof(*req), 16)));
3547 req->le.version_cpl = htonl(FW_OFLD_CONNECTION_WR_CPL_F); 3547 req->le.version_cpl = htonl(FW_OFLD_CONNECTION_WR_CPL_F);
3548 req->le.filter = (__force __be32) filter; 3548 req->le.filter = (__force __be32) filter;
@@ -3556,7 +3556,7 @@ static void send_fw_pass_open_req(struct c4iw_dev *dev, struct sk_buff *skb,
3556 htonl(FW_OFLD_CONNECTION_WR_T_STATE_V(TCP_SYN_RECV) | 3556 htonl(FW_OFLD_CONNECTION_WR_T_STATE_V(TCP_SYN_RECV) |
3557 FW_OFLD_CONNECTION_WR_RCV_SCALE_V(cpl->tcpopt.wsf) | 3557 FW_OFLD_CONNECTION_WR_RCV_SCALE_V(cpl->tcpopt.wsf) |
3558 FW_OFLD_CONNECTION_WR_ASTID_V( 3558 FW_OFLD_CONNECTION_WR_ASTID_V(
3559 GET_PASS_OPEN_TID(ntohl(cpl->tos_stid)))); 3559 PASS_OPEN_TID_G(ntohl(cpl->tos_stid))));
3560 3560
3561 /* 3561 /*
3562 * We store the qid in opt2 which will be used by the firmware 3562 * We store the qid in opt2 which will be used by the firmware
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
index 6de41cc6687e..2897f956bb21 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
@@ -3416,8 +3416,8 @@ int cxgb4_create_server(const struct net_device *dev, unsigned int stid,
3416 req->peer_ip = htonl(0); 3416 req->peer_ip = htonl(0);
3417 chan = rxq_to_chan(&adap->sge, queue); 3417 chan = rxq_to_chan(&adap->sge, queue);
3418 req->opt0 = cpu_to_be64(TX_CHAN_V(chan)); 3418 req->opt0 = cpu_to_be64(TX_CHAN_V(chan));
3419 req->opt1 = cpu_to_be64(CONN_POLICY_ASK | 3419 req->opt1 = cpu_to_be64(CONN_POLICY_V(CPL_CONN_POLICY_ASK) |
3420 SYN_RSS_ENABLE | SYN_RSS_QUEUE(queue)); 3420 SYN_RSS_ENABLE_F | SYN_RSS_QUEUE_V(queue));
3421 ret = t4_mgmt_tx(adap, skb); 3421 ret = t4_mgmt_tx(adap, skb);
3422 return net_xmit_eval(ret); 3422 return net_xmit_eval(ret);
3423} 3423}
@@ -3459,8 +3459,8 @@ int cxgb4_create_server6(const struct net_device *dev, unsigned int stid,
3459 req->peer_ip_lo = cpu_to_be64(0); 3459 req->peer_ip_lo = cpu_to_be64(0);
3460 chan = rxq_to_chan(&adap->sge, queue); 3460 chan = rxq_to_chan(&adap->sge, queue);
3461 req->opt0 = cpu_to_be64(TX_CHAN_V(chan)); 3461 req->opt0 = cpu_to_be64(TX_CHAN_V(chan));
3462 req->opt1 = cpu_to_be64(CONN_POLICY_ASK | 3462 req->opt1 = cpu_to_be64(CONN_POLICY_V(CPL_CONN_POLICY_ASK) |
3463 SYN_RSS_ENABLE | SYN_RSS_QUEUE(queue)); 3463 SYN_RSS_ENABLE_F | SYN_RSS_QUEUE_V(queue));
3464 ret = t4_mgmt_tx(adap, skb); 3464 ret = t4_mgmt_tx(adap, skb);
3465 return net_xmit_eval(ret); 3465 return net_xmit_eval(ret);
3466} 3466}
diff --git a/drivers/net/ethernet/chelsio/cxgb4/l2t.c b/drivers/net/ethernet/chelsio/cxgb4/l2t.c
index 5ae14451c3a4..dea984bbdb99 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/l2t.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/l2t.c
@@ -151,7 +151,7 @@ static int write_l2e(struct adapter *adap, struct l2t_entry *e, int sync)
151 151
152 OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_L2T_WRITE_REQ, 152 OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_L2T_WRITE_REQ,
153 e->idx | (sync ? F_SYNC_WR : 0) | 153 e->idx | (sync ? F_SYNC_WR : 0) |
154 TID_QID(adap->sge.fw_evtq.abs_id))); 154 TID_QID_V(adap->sge.fw_evtq.abs_id)));
155 req->params = htons(L2T_W_PORT(e->lport) | L2T_W_NOREPLY(!sync)); 155 req->params = htons(L2T_W_PORT(e->lport) | L2T_W_NOREPLY(!sync));
156 req->l2t_idx = htons(e->idx); 156 req->l2t_idx = htons(e->idx);
157 req->vlan = htons(e->vlan); 157 req->vlan = htons(e->vlan);
diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_msg.h b/drivers/net/ethernet/chelsio/cxgb4/t4_msg.h
index 0f89f68948ab..15e72063fc95 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/t4_msg.h
+++ b/drivers/net/ethernet/chelsio/cxgb4/t4_msg.h
@@ -124,6 +124,13 @@ enum CPL_error {
124}; 124};
125 125
126enum { 126enum {
127 CPL_CONN_POLICY_AUTO = 0,
128 CPL_CONN_POLICY_ASK = 1,
129 CPL_CONN_POLICY_FILTER = 2,
130 CPL_CONN_POLICY_DENY = 3
131};
132
133enum {
127 ULP_MODE_NONE = 0, 134 ULP_MODE_NONE = 0,
128 ULP_MODE_ISCSI = 2, 135 ULP_MODE_ISCSI = 2,
129 ULP_MODE_RDMA = 4, 136 ULP_MODE_RDMA = 4,
@@ -160,16 +167,28 @@ union opcode_tid {
160 u8 opcode; 167 u8 opcode;
161}; 168};
162 169
163#define CPL_OPCODE(x) ((x) << 24) 170#define CPL_OPCODE_S 24
164#define G_CPL_OPCODE(x) (((x) >> 24) & 0xFF) 171#define CPL_OPCODE_V(x) ((x) << CPL_OPCODE_S)
165#define MK_OPCODE_TID(opcode, tid) (CPL_OPCODE(opcode) | (tid)) 172#define CPL_OPCODE_G(x) (((x) >> CPL_OPCODE_S) & 0xFF)
173#define TID_G(x) ((x) & 0xFFFFFF)
174
175/* tid is assumed to be 24-bits */
176#define MK_OPCODE_TID(opcode, tid) (CPL_OPCODE_V(opcode) | (tid))
177
166#define OPCODE_TID(cmd) ((cmd)->ot.opcode_tid) 178#define OPCODE_TID(cmd) ((cmd)->ot.opcode_tid)
167#define GET_TID(cmd) (ntohl(OPCODE_TID(cmd)) & 0xFFFFFF) 179
180/* extract the TID from a CPL command */
181#define GET_TID(cmd) (TID_G(be32_to_cpu(OPCODE_TID(cmd))))
168 182
169/* partitioning of TID fields that also carry a queue id */ 183/* partitioning of TID fields that also carry a queue id */
170#define GET_TID_TID(x) ((x) & 0x3fff) 184#define TID_TID_S 0
171#define GET_TID_QID(x) (((x) >> 14) & 0x3ff) 185#define TID_TID_M 0x3fff
172#define TID_QID(x) ((x) << 14) 186#define TID_TID_G(x) (((x) >> TID_TID_S) & TID_TID_M)
187
188#define TID_QID_S 14
189#define TID_QID_M 0x3ff
190#define TID_QID_V(x) ((x) << TID_QID_S)
191#define TID_QID_G(x) (((x) >> TID_QID_S) & TID_QID_M)
173 192
174struct rss_header { 193struct rss_header {
175 u8 opcode; 194 u8 opcode;
@@ -199,8 +218,8 @@ struct work_request_hdr {
199}; 218};
200 219
201/* wr_hi fields */ 220/* wr_hi fields */
202#define S_WR_OP 24 221#define WR_OP_S 24
203#define V_WR_OP(x) ((__u64)(x) << S_WR_OP) 222#define WR_OP_V(x) ((__u64)(x) << WR_OP_S)
204 223
205#define WR_HDR struct work_request_hdr wr 224#define WR_HDR struct work_request_hdr wr
206 225
@@ -270,17 +289,42 @@ struct cpl_pass_open_req {
270 __be32 local_ip; 289 __be32 local_ip;
271 __be32 peer_ip; 290 __be32 peer_ip;
272 __be64 opt0; 291 __be64 opt0;
273#define NO_CONG(x) ((x) << 4)
274#define DELACK(x) ((x) << 5)
275#define DSCP(x) ((x) << 22)
276#define TCAM_BYPASS(x) ((u64)(x) << 48)
277#define NAGLE(x) ((u64)(x) << 49)
278 __be64 opt1; 292 __be64 opt1;
279#define SYN_RSS_ENABLE (1 << 0)
280#define SYN_RSS_QUEUE(x) ((x) << 2)
281#define CONN_POLICY_ASK (1 << 22)
282}; 293};
283 294
295/* option 0 fields */
296#define NO_CONG_S 4
297#define NO_CONG_V(x) ((x) << NO_CONG_S)
298#define NO_CONG_F NO_CONG_V(1U)
299
300#define DELACK_S 5
301#define DELACK_V(x) ((x) << DELACK_S)
302#define DELACK_F DELACK_V(1U)
303
304#define DSCP_S 22
305#define DSCP_M 0x3F
306#define DSCP_V(x) ((x) << DSCP_S)
307#define DSCP_G(x) (((x) >> DSCP_S) & DSCP_M)
308
309#define TCAM_BYPASS_S 48
310#define TCAM_BYPASS_V(x) ((__u64)(x) << TCAM_BYPASS_S)
311#define TCAM_BYPASS_F TCAM_BYPASS_V(1ULL)
312
313#define NAGLE_S 49
314#define NAGLE_V(x) ((__u64)(x) << NAGLE_S)
315#define NAGLE_F NAGLE_V(1ULL)
316
317/* option 1 fields */
318#define SYN_RSS_ENABLE_S 0
319#define SYN_RSS_ENABLE_V(x) ((x) << SYN_RSS_ENABLE_S)
320#define SYN_RSS_ENABLE_F SYN_RSS_ENABLE_V(1U)
321
322#define SYN_RSS_QUEUE_S 2
323#define SYN_RSS_QUEUE_V(x) ((x) << SYN_RSS_QUEUE_S)
324
325#define CONN_POLICY_S 22
326#define CONN_POLICY_V(x) ((x) << CONN_POLICY_S)
327
284struct cpl_pass_open_req6 { 328struct cpl_pass_open_req6 {
285 WR_HDR; 329 WR_HDR;
286 union opcode_tid ot; 330 union opcode_tid ot;
@@ -304,16 +348,37 @@ struct cpl_pass_accept_rpl {
304 WR_HDR; 348 WR_HDR;
305 union opcode_tid ot; 349 union opcode_tid ot;
306 __be32 opt2; 350 __be32 opt2;
307#define RX_COALESCE_VALID(x) ((x) << 11)
308#define RX_COALESCE(x) ((x) << 12)
309#define PACE(x) ((x) << 16)
310#define TX_QUEUE(x) ((x) << 23)
311#define CCTRL_ECN(x) ((x) << 27)
312#define TSTAMPS_EN(x) ((x) << 29)
313#define SACK_EN(x) ((x) << 30)
314 __be64 opt0; 351 __be64 opt0;
315}; 352};
316 353
354/* option 2 fields */
355#define RX_COALESCE_VALID_S 11
356#define RX_COALESCE_VALID_V(x) ((x) << RX_COALESCE_VALID_S)
357#define RX_COALESCE_VALID_F RX_COALESCE_VALID_V(1U)
358
359#define RX_COALESCE_S 12
360#define RX_COALESCE_V(x) ((x) << RX_COALESCE_S)
361
362#define PACE_S 16
363#define PACE_V(x) ((x) << PACE_S)
364
365#define TX_QUEUE_S 23
366#define TX_QUEUE_M 0x7
367#define TX_QUEUE_V(x) ((x) << TX_QUEUE_S)
368#define TX_QUEUE_G(x) (((x) >> TX_QUEUE_S) & TX_QUEUE_M)
369
370#define CCTRL_ECN_S 27
371#define CCTRL_ECN_V(x) ((x) << CCTRL_ECN_S)
372#define CCTRL_ECN_F CCTRL_ECN_V(1U)
373
374#define TSTAMPS_EN_S 29
375#define TSTAMPS_EN_V(x) ((x) << TSTAMPS_EN_S)
376#define TSTAMPS_EN_F TSTAMPS_EN_V(1U)
377
378#define SACK_EN_S 30
379#define SACK_EN_V(x) ((x) << SACK_EN_S)
380#define SACK_EN_F SACK_EN_V(1U)
381
317struct cpl_t5_pass_accept_rpl { 382struct cpl_t5_pass_accept_rpl {
318 WR_HDR; 383 WR_HDR;
319 union opcode_tid ot; 384 union opcode_tid ot;
@@ -384,30 +449,61 @@ struct cpl_t5_act_open_req6 {
384struct cpl_act_open_rpl { 449struct cpl_act_open_rpl {
385 union opcode_tid ot; 450 union opcode_tid ot;
386 __be32 atid_status; 451 __be32 atid_status;
387#define GET_AOPEN_STATUS(x) ((x) & 0xff)
388#define GET_AOPEN_ATID(x) (((x) >> 8) & 0xffffff)
389}; 452};
390 453
454/* cpl_act_open_rpl.atid_status fields */
455#define AOPEN_STATUS_S 0
456#define AOPEN_STATUS_M 0xFF
457#define AOPEN_STATUS_G(x) (((x) >> AOPEN_STATUS_S) & AOPEN_STATUS_M)
458
459#define AOPEN_ATID_S 8
460#define AOPEN_ATID_M 0xFFFFFF
461#define AOPEN_ATID_G(x) (((x) >> AOPEN_ATID_S) & AOPEN_ATID_M)
462
391struct cpl_pass_establish { 463struct cpl_pass_establish {
392 union opcode_tid ot; 464 union opcode_tid ot;
393 __be32 rsvd; 465 __be32 rsvd;
394 __be32 tos_stid; 466 __be32 tos_stid;
395#define PASS_OPEN_TID(x) ((x) << 0)
396#define PASS_OPEN_TOS(x) ((x) << 24)
397#define GET_PASS_OPEN_TID(x) (((x) >> 0) & 0xFFFFFF)
398#define GET_POPEN_TID(x) ((x) & 0xffffff)
399#define GET_POPEN_TOS(x) (((x) >> 24) & 0xff)
400 __be16 mac_idx; 467 __be16 mac_idx;
401 __be16 tcp_opt; 468 __be16 tcp_opt;
402#define GET_TCPOPT_WSCALE_OK(x) (((x) >> 5) & 1)
403#define GET_TCPOPT_SACK(x) (((x) >> 6) & 1)
404#define GET_TCPOPT_TSTAMP(x) (((x) >> 7) & 1)
405#define GET_TCPOPT_SND_WSCALE(x) (((x) >> 8) & 0xf)
406#define GET_TCPOPT_MSS(x) (((x) >> 12) & 0xf)
407 __be32 snd_isn; 469 __be32 snd_isn;
408 __be32 rcv_isn; 470 __be32 rcv_isn;
409}; 471};
410 472
473/* cpl_pass_establish.tos_stid fields */
474#define PASS_OPEN_TID_S 0
475#define PASS_OPEN_TID_M 0xFFFFFF
476#define PASS_OPEN_TID_V(x) ((x) << PASS_OPEN_TID_S)
477#define PASS_OPEN_TID_G(x) (((x) >> PASS_OPEN_TID_S) & PASS_OPEN_TID_M)
478
479#define PASS_OPEN_TOS_S 24
480#define PASS_OPEN_TOS_M 0xFF
481#define PASS_OPEN_TOS_V(x) ((x) << PASS_OPEN_TOS_S)
482#define PASS_OPEN_TOS_G(x) (((x) >> PASS_OPEN_TOS_S) & PASS_OPEN_TOS_M)
483
484/* cpl_pass_establish.tcp_opt fields (also applies to act_open_establish) */
485#define TCPOPT_WSCALE_OK_S 5
486#define TCPOPT_WSCALE_OK_M 0x1
487#define TCPOPT_WSCALE_OK_G(x) \
488 (((x) >> TCPOPT_WSCALE_OK_S) & TCPOPT_WSCALE_OK_M)
489
490#define TCPOPT_SACK_S 6
491#define TCPOPT_SACK_M 0x1
492#define TCPOPT_SACK_G(x) (((x) >> TCPOPT_SACK_S) & TCPOPT_SACK_M)
493
494#define TCPOPT_TSTAMP_S 7
495#define TCPOPT_TSTAMP_M 0x1
496#define TCPOPT_TSTAMP_G(x) (((x) >> TCPOPT_TSTAMP_S) & TCPOPT_TSTAMP_M)
497
498#define TCPOPT_SND_WSCALE_S 8
499#define TCPOPT_SND_WSCALE_M 0xF
500#define TCPOPT_SND_WSCALE_G(x) \
501 (((x) >> TCPOPT_SND_WSCALE_S) & TCPOPT_SND_WSCALE_M)
502
503#define TCPOPT_MSS_S 12
504#define TCPOPT_MSS_M 0xF
505#define TCPOPT_MSS_G(x) (((x) >> TCPOPT_MSS_S) & TCPOPT_MSS_M)
506
411struct cpl_act_establish { 507struct cpl_act_establish {
412 union opcode_tid ot; 508 union opcode_tid ot;
413 __be32 rsvd; 509 __be32 rsvd;
diff --git a/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c b/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c
index 7bfbacd63f7a..4591d934e221 100644
--- a/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c
+++ b/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c
@@ -450,7 +450,7 @@ static int fwevtq_handler(struct sge_rspq *rspq, const __be64 *rsp,
450 /* FW can send EGR_UPDATEs encapsulated in a CPL_FW4_MSG. 450 /* FW can send EGR_UPDATEs encapsulated in a CPL_FW4_MSG.
451 */ 451 */
452 const struct cpl_sge_egr_update *p = (void *)(rsp + 3); 452 const struct cpl_sge_egr_update *p = (void *)(rsp + 3);
453 opcode = G_CPL_OPCODE(ntohl(p->opcode_qid)); 453 opcode = CPL_OPCODE_G(ntohl(p->opcode_qid));
454 if (opcode != CPL_SGE_EGR_UPDATE) { 454 if (opcode != CPL_SGE_EGR_UPDATE) {
455 dev_err(adapter->pdev_dev, "unexpected FW4/CPL %#x on FW event queue\n" 455 dev_err(adapter->pdev_dev, "unexpected FW4/CPL %#x on FW event queue\n"
456 , opcode); 456 , opcode);
diff --git a/drivers/scsi/cxgbi/cxgb4i/cxgb4i.c b/drivers/scsi/cxgbi/cxgb4i/cxgb4i.c
index a83d2ceded83..c3f2b973149b 100644
--- a/drivers/scsi/cxgbi/cxgb4i/cxgb4i.c
+++ b/drivers/scsi/cxgbi/cxgb4i/cxgb4i.c
@@ -704,7 +704,7 @@ static void do_act_establish(struct cxgbi_device *cdev, struct sk_buff *skb)
704 struct cpl_act_establish *req = (struct cpl_act_establish *)skb->data; 704 struct cpl_act_establish *req = (struct cpl_act_establish *)skb->data;
705 unsigned short tcp_opt = ntohs(req->tcp_opt); 705 unsigned short tcp_opt = ntohs(req->tcp_opt);
706 unsigned int tid = GET_TID(req); 706 unsigned int tid = GET_TID(req);
707 unsigned int atid = GET_TID_TID(ntohl(req->tos_atid)); 707 unsigned int atid = TID_TID_G(ntohl(req->tos_atid));
708 struct cxgb4_lld_info *lldi = cxgbi_cdev_priv(cdev); 708 struct cxgb4_lld_info *lldi = cxgbi_cdev_priv(cdev);
709 struct tid_info *t = lldi->tids; 709 struct tid_info *t = lldi->tids;
710 u32 rcv_isn = be32_to_cpu(req->rcv_isn); 710 u32 rcv_isn = be32_to_cpu(req->rcv_isn);
@@ -752,15 +752,15 @@ static void do_act_establish(struct cxgbi_device *cdev, struct sk_buff *skb)
752 if (cxgb4i_rcv_win > (RCV_BUFSIZ_MASK << 10)) 752 if (cxgb4i_rcv_win > (RCV_BUFSIZ_MASK << 10))
753 csk->rcv_wup -= cxgb4i_rcv_win - (RCV_BUFSIZ_MASK << 10); 753 csk->rcv_wup -= cxgb4i_rcv_win - (RCV_BUFSIZ_MASK << 10);
754 754
755 csk->advmss = lldi->mtus[GET_TCPOPT_MSS(tcp_opt)] - 40; 755 csk->advmss = lldi->mtus[TCPOPT_MSS_G(tcp_opt)] - 40;
756 if (GET_TCPOPT_TSTAMP(tcp_opt)) 756 if (TCPOPT_TSTAMP_G(tcp_opt))
757 csk->advmss -= 12; 757 csk->advmss -= 12;
758 if (csk->advmss < 128) 758 if (csk->advmss < 128)
759 csk->advmss = 128; 759 csk->advmss = 128;
760 760
761 log_debug(1 << CXGBI_DBG_TOE | 1 << CXGBI_DBG_SOCK, 761 log_debug(1 << CXGBI_DBG_TOE | 1 << CXGBI_DBG_SOCK,
762 "csk 0x%p, mss_idx %u, advmss %u.\n", 762 "csk 0x%p, mss_idx %u, advmss %u.\n",
763 csk, GET_TCPOPT_MSS(tcp_opt), csk->advmss); 763 csk, TCPOPT_MSS_G(tcp_opt), csk->advmss);
764 764
765 cxgbi_sock_established(csk, ntohl(req->snd_isn), ntohs(req->tcp_opt)); 765 cxgbi_sock_established(csk, ntohl(req->snd_isn), ntohs(req->tcp_opt));
766 766
@@ -856,8 +856,8 @@ static void do_act_open_rpl(struct cxgbi_device *cdev, struct sk_buff *skb)
856 struct cpl_act_open_rpl *rpl = (struct cpl_act_open_rpl *)skb->data; 856 struct cpl_act_open_rpl *rpl = (struct cpl_act_open_rpl *)skb->data;
857 unsigned int tid = GET_TID(rpl); 857 unsigned int tid = GET_TID(rpl);
858 unsigned int atid = 858 unsigned int atid =
859 GET_TID_TID(GET_AOPEN_ATID(be32_to_cpu(rpl->atid_status))); 859 TID_TID_G(AOPEN_ATID_G(be32_to_cpu(rpl->atid_status)));
860 unsigned int status = GET_AOPEN_STATUS(be32_to_cpu(rpl->atid_status)); 860 unsigned int status = AOPEN_STATUS_G(be32_to_cpu(rpl->atid_status));
861 struct cxgb4_lld_info *lldi = cxgbi_cdev_priv(cdev); 861 struct cxgb4_lld_info *lldi = cxgbi_cdev_priv(cdev);
862 struct tid_info *t = lldi->tids; 862 struct tid_info *t = lldi->tids;
863 863