tree:   git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband.git 
for-next
head:   4d4b72d11156c560d4a97a20ba4dcda1ee7c976f
commit: fd56c2b766cdcfc0e3d31fc6c192536269f5b94d [4/6] RDMA/cxgb4: Fix LE hash 
collision bug for passive open connection


sparse warnings:

drivers/infiniband/hw/cxgb4/cm.c:1465:25: sparse: incorrect type in assignment 
(different base types)
drivers/infiniband/hw/cxgb4/cm.c:1465:25:    expected restricted __be32 
[usertype] tx_max
drivers/infiniband/hw/cxgb4/cm.c:1465:25:    got unsigned long extern volatile 
[unsigned] [addressable] [toplevel] jiffies
drivers/infiniband/hw/cxgb4/cm.c:1468:23: sparse: incorrect type in assignment 
(different base types)
drivers/infiniband/hw/cxgb4/cm.c:1468:23:    expected restricted __be64 
[usertype] opt0
drivers/infiniband/hw/cxgb4/cm.c:1468:23:    got unsigned long long
drivers/infiniband/hw/cxgb4/cm.c:1480:23: sparse: incorrect type in assignment 
(different base types)
drivers/infiniband/hw/cxgb4/cm.c:1480:23:    expected restricted __be32 
[usertype] opt2
drivers/infiniband/hw/cxgb4/cm.c:1480:23:    got int
drivers/infiniband/hw/cxgb4/cm.c:1486:31: sparse: invalid assignment: |=
drivers/infiniband/hw/cxgb4/cm.c:1486:31:    left side has type restricted 
__be32
drivers/infiniband/hw/cxgb4/cm.c:1486:31:    right side has type int
drivers/infiniband/hw/cxgb4/cm.c:1488:31: sparse: invalid assignment: |=
drivers/infiniband/hw/cxgb4/cm.c:1488:31:    left side has type restricted 
__be32
drivers/infiniband/hw/cxgb4/cm.c:1488:31:    right side has type int
drivers/infiniband/hw/cxgb4/cm.c:1490:31: sparse: invalid assignment: |=
drivers/infiniband/hw/cxgb4/cm.c:1490:31:    left side has type restricted 
__be32
drivers/infiniband/hw/cxgb4/cm.c:1490:31:    right side has type int
drivers/infiniband/hw/cxgb4/cm.c:1491:25: sparse: cast from restricted __be64
drivers/infiniband/hw/cxgb4/cm.c:1491:25: sparse: incorrect type in argument 1 
(different base types)
drivers/infiniband/hw/cxgb4/cm.c:1491:25:    expected unsigned long long 
[unsigned] [usertype] val
drivers/infiniband/hw/cxgb4/cm.c:1491:25:    got restricted __be64 [usertype] 
opt0
drivers/infiniband/hw/cxgb4/cm.c:1491:25: sparse: cast from restricted __be64
drivers/infiniband/hw/cxgb4/cm.c:1491:25: sparse: cast from restricted __be64
drivers/infiniband/hw/cxgb4/cm.c:1491:25: sparse: cast from restricted __be64
drivers/infiniband/hw/cxgb4/cm.c:1491:25: sparse: cast from restricted __be64
drivers/infiniband/hw/cxgb4/cm.c:1491:25: sparse: cast from restricted __be64
drivers/infiniband/hw/cxgb4/cm.c:1491:25: sparse: cast from restricted __be64
drivers/infiniband/hw/cxgb4/cm.c:1491:25: sparse: cast from restricted __be64
drivers/infiniband/hw/cxgb4/cm.c:1491:25: sparse: cast from restricted __be64
drivers/infiniband/hw/cxgb4/cm.c:1492:25: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:1492:25: sparse: incorrect type in argument 1 
(different base types)
drivers/infiniband/hw/cxgb4/cm.c:1492:25:    expected unsigned int [unsigned] 
[usertype] val
drivers/infiniband/hw/cxgb4/cm.c:1492:25:    got restricted __be32 [usertype] 
opt2
drivers/infiniband/hw/cxgb4/cm.c:1492:25: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:1492:25: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:1492:25: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:1492:25: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:2670:68: sparse: incorrect type in argument 2 
(different base types)
drivers/infiniband/hw/cxgb4/cm.c:2670:68:    expected unsigned int [unsigned] 
atid
drivers/infiniband/hw/cxgb4/cm.c:2670:68:    got restricted __be32 [usertype] 
tid
drivers/infiniband/hw/cxgb4/cm.c:2694:20: sparse: cast from restricted __be64
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: incorrect type in argument 1 
(different base types)
drivers/infiniband/hw/cxgb4/cm.c:2701:35:    expected unsigned int [unsigned] 
[usertype] val
drivers/infiniband/hw/cxgb4/cm.c:2701:35:    got restricted __be32 [usertype] 
tid
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
+ drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: restricted __be32 degrades 
to integer
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: incorrect type in argument 1 
(different base types)
drivers/infiniband/hw/cxgb4/cm.c:2701:35:    expected unsigned int [unsigned] 
[usertype] val
drivers/infiniband/hw/cxgb4/cm.c:2701:35:    got restricted __be32 [usertype] 
tid
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
+ drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: restricted __be32 degrades 
to integer
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: incorrect type in argument 1 
(different base types)
drivers/infiniband/hw/cxgb4/cm.c:2701:35:    expected unsigned int [unsigned] 
[usertype] val
drivers/infiniband/hw/cxgb4/cm.c:2701:35:    got restricted __be32 [usertype] 
tid
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
+ drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: restricted __be32 degrades 
to integer
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: incorrect type in argument 1 
(different base types)
drivers/infiniband/hw/cxgb4/cm.c:2701:35:    expected unsigned int [unsigned] 
[usertype] val
drivers/infiniband/hw/cxgb4/cm.c:2701:35:    got restricted __be32 [usertype] 
tid
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
+ drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: restricted __be32 degrades 
to integer
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: incorrect type in argument 1 
(different base types)
drivers/infiniband/hw/cxgb4/cm.c:2701:35:    expected unsigned int [unsigned] 
[usertype] val
drivers/infiniband/hw/cxgb4/cm.c:2701:35:    got restricted __be32 [usertype] 
tid
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
+ drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: restricted __be32 degrades 
to integer
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: incorrect type in argument 1 
(different base types)
drivers/infiniband/hw/cxgb4/cm.c:2701:35:    expected unsigned int [unsigned] 
[usertype] val
drivers/infiniband/hw/cxgb4/cm.c:2701:35:    got restricted __be32 [usertype] 
tid
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: cast from restricted __be32
+ drivers/infiniband/hw/cxgb4/cm.c:2701:35: sparse: restricted __be32 degrades 
to integer
drivers/infiniband/hw/cxgb4/cm.c:2748:17: sparse: incorrect type in assignment 
(different base types)
drivers/infiniband/hw/cxgb4/cm.c:2748:17:    expected unsigned short [unsigned] 
[usertype] vlantag
drivers/infiniband/hw/cxgb4/cm.c:2748:17:    got restricted __be16 [usertype] 
vlan
drivers/infiniband/hw/cxgb4/cm.c:2749:13: sparse: incorrect type in assignment 
(different base types)
drivers/infiniband/hw/cxgb4/cm.c:2749:13:    expected unsigned short [unsigned] 
[usertype] len
drivers/infiniband/hw/cxgb4/cm.c:2749:13:    got restricted __be16 [usertype] 
len
drivers/infiniband/hw/cxgb4/cm.c:2750:17: sparse: incorrect type in assignment 
(different base types)
drivers/infiniband/hw/cxgb4/cm.c:2750:17:    expected unsigned int [unsigned] 
[usertype] l2info
drivers/infiniband/hw/cxgb4/cm.c:2750:17:    got restricted __be32 [usertype] 
l2info
drivers/infiniband/hw/cxgb4/cm.c:2751:17: sparse: incorrect type in assignment 
(different base types)
drivers/infiniband/hw/cxgb4/cm.c:2751:17:    expected unsigned short [unsigned] 
[usertype] hdr_len
drivers/infiniband/hw/cxgb4/cm.c:2751:17:    got restricted __be16 [usertype] 
hdr_len
+ drivers/infiniband/hw/cxgb4/cm.c:2762:42: sparse: Using plain integer as NULL 
pointer
drivers/infiniband/hw/cxgb4/cm.c:2766:23: sparse: restricted __be32 degrades to 
integer
drivers/infiniband/hw/cxgb4/cm.c:2766:23: sparse: restricted __be32 degrades to 
integer
drivers/infiniband/hw/cxgb4/cm.c:2766:23: sparse: restricted __be32 degrades to 
integer
drivers/infiniband/hw/cxgb4/cm.c:2766:23: sparse: restricted __be32 degrades to 
integer
drivers/infiniband/hw/cxgb4/cm.c:2769:24: sparse: restricted __be32 degrades to 
integer
+ drivers/infiniband/hw/cxgb4/cm.c:2769:24: sparse: restricted __be16 degrades 
to integer
+ drivers/infiniband/hw/cxgb4/cm.c:2769:24: sparse: restricted __be16 degrades 
to integer
drivers/infiniband/hw/cxgb4/cm.c:2769:24: sparse: restricted __be32 degrades to 
integer
drivers/infiniband/hw/cxgb4/cm.c:2769:24: sparse: restricted __be32 degrades to 
integer
+ drivers/infiniband/hw/cxgb4/cm.c:2769:24: sparse: restricted __be16 degrades 
to integer
+ drivers/infiniband/hw/cxgb4/cm.c:2769:24: sparse: restricted __be16 degrades 
to integer
drivers/infiniband/hw/cxgb4/cm.c:2769:24: sparse: restricted __be32 degrades to 
integer
drivers/infiniband/hw/cxgb4/cm.c:2769:24: sparse: restricted __be32 degrades to 
integer
+ drivers/infiniband/hw/cxgb4/cm.c:2769:24: sparse: restricted __be16 degrades 
to integer
+ drivers/infiniband/hw/cxgb4/cm.c:2769:24: sparse: restricted __be16 degrades 
to integer
drivers/infiniband/hw/cxgb4/cm.c:2769:24: sparse: restricted __be32 degrades to 
integer
drivers/infiniband/hw/cxgb4/cm.c:2769:24: sparse: restricted __be32 degrades to 
integer
+ drivers/infiniband/hw/cxgb4/cm.c:2769:24: sparse: restricted __be16 degrades 
to integer
+ drivers/infiniband/hw/cxgb4/cm.c:2769:24: sparse: restricted __be16 degrades 
to integer
drivers/infiniband/hw/cxgb4/cm.c:2769:24: sparse: restricted __be32 degrades to 
integer
drivers/infiniband/hw/cxgb4/cm.c:2769:24: sparse: restricted __be32 degrades to 
integer
+ drivers/infiniband/hw/cxgb4/cm.c:2769:24: sparse: restricted __be16 degrades 
to integer
+ drivers/infiniband/hw/cxgb4/cm.c:2769:24: sparse: restricted __be16 degrades 
to integer
drivers/infiniband/hw/cxgb4/cm.c:2769:24: sparse: restricted __be32 degrades to 
integer
drivers/infiniband/hw/cxgb4/cm.c:2769:24: sparse: restricted __be32 degrades to 
integer
+ drivers/infiniband/hw/cxgb4/cm.c:2769:24: sparse: restricted __be16 degrades 
to integer
+ drivers/infiniband/hw/cxgb4/cm.c:2769:24: sparse: restricted __be16 degrades 
to integer
drivers/infiniband/hw/cxgb4/cm.c:2769:24: sparse: restricted __be32 degrades to 
integer
+ drivers/infiniband/hw/cxgb4/cm.c:2773:19: sparse: too many warnings
drivers/infiniband/hw/cxgb4/cm.c: In function 'passive_ofld_conn_reply':
drivers/infiniband/hw/cxgb4/cm.c:2694:12: warning: cast to pointer from integer 
of different size [-Wint-to-pointer-cast]
drivers/infiniband/hw/cxgb4/cm.c: In function 'send_fw_pass_open_req':
drivers/infiniband/hw/cxgb4/cm.c:2829:16: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
drivers/infiniband/hw/cxgb4/cm.c:2829:16: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
drivers/infiniband/hw/cxgb4/cm.c:2829:16: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
drivers/infiniband/hw/cxgb4/cm.c:2829:16: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
drivers/infiniband/hw/cxgb4/cm.c:2829:16: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
drivers/infiniband/hw/cxgb4/cm.c:2829:16: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
drivers/infiniband/hw/cxgb4/cm.c:2829:16: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
drivers/infiniband/hw/cxgb4/cm.c:2829:16: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
drivers/infiniband/hw/cxgb4/cm.c:2829:16: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
drivers/infiniband/hw/cxgb4/cm.c:2829:16: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
--
+ drivers/infiniband/hw/cxgb4/device.c:671:17: sparse: cast to restricted __be64
+ drivers/infiniband/hw/cxgb4/device.c:671:17: sparse: cast to restricted __be64
+ drivers/infiniband/hw/cxgb4/device.c:671:17: sparse: cast to restricted __be64
+ drivers/infiniband/hw/cxgb4/device.c:671:17: sparse: cast to restricted __be64
+ drivers/infiniband/hw/cxgb4/device.c:671:17: sparse: cast to restricted __be64
+ drivers/infiniband/hw/cxgb4/device.c:671:17: sparse: cast to restricted __be64
+ drivers/infiniband/hw/cxgb4/device.c:671:17: sparse: cast to restricted __be64
+ drivers/infiniband/hw/cxgb4/device.c:671:17: sparse: cast to restricted __be64
+ drivers/infiniband/hw/cxgb4/device.c:671:17: sparse: cast to restricted __be64
+ drivers/infiniband/hw/cxgb4/device.c:671:17: sparse: cast to restricted __be64
drivers/infiniband/hw/cxgb4/device.c: In function 'c4iw_rdev_open':
drivers/infiniband/hw/cxgb4/device.c:414:2: warning: cast to pointer from 
integer of different size [-Wint-to-pointer-cast]

vim +2701 drivers/infiniband/hw/cxgb4/cm.c

fd56c2b7 Vipul Pandya 2012-12-10  2695          BUG_ON(!rpl_skb);
fd56c2b7 Vipul Pandya 2012-12-10  2696          if (req->retval) {
fd56c2b7 Vipul Pandya 2012-12-10  2697                  PDBG("%s passive open 
failure %d\n", __func__, req->retval);
fd56c2b7 Vipul Pandya 2012-12-10  2698                  kfree_skb(rpl_skb);
fd56c2b7 Vipul Pandya 2012-12-10  2699          } else {
fd56c2b7 Vipul Pandya 2012-12-10  2700                  cpl = (struct 
cpl_pass_accept_req *)cplhdr(rpl_skb);
fd56c2b7 Vipul Pandya 2012-12-10 @2701                  OPCODE_TID(cpl) = 
htonl(MK_OPCODE_TID(CPL_PASS_ACCEPT_REQ,
fd56c2b7 Vipul Pandya 2012-12-10  2702                                          
              htonl(req->tid)));
fd56c2b7 Vipul Pandya 2012-12-10  2703                  ret = 
pass_accept_req(dev, rpl_skb);
fd56c2b7 Vipul Pandya 2012-12-10  2704                  if (!ret)
fd56c2b7 Vipul Pandya 2012-12-10  2705                          
kfree_skb(rpl_skb);
fd56c2b7 Vipul Pandya 2012-12-10  2706          }
fd56c2b7 Vipul Pandya 2012-12-10  2707          return;
fd56c2b7 Vipul Pandya 2012-12-10  2708  }
fd56c2b7 Vipul Pandya 2012-12-10  2709  
fd56c2b7 Vipul Pandya 2012-12-10  2710  static int deferred_fw6_msg(struct 
c4iw_dev *dev, struct sk_buff *skb)
2f5b48c3 Steve Wise   2010-09-10  2711  {
2f5b48c3 Steve Wise   2010-09-10  2712          struct cpl_fw6_msg *rpl = 
cplhdr(skb);
fd56c2b7 Vipul Pandya 2012-12-10  2713          struct 
cpl_fw6_msg_ofld_connection_wr_rpl *req;
fd56c2b7 Vipul Pandya 2012-12-10  2714  
fd56c2b7 Vipul Pandya 2012-12-10  2715          switch (rpl->type) {
fd56c2b7 Vipul Pandya 2012-12-10  2716          case FW6_TYPE_CQE:
fd56c2b7 Vipul Pandya 2012-12-10  2717                  c4iw_ev_dispatch(dev, 
(struct t4_cqe *)&rpl->data[0]);
fd56c2b7 Vipul Pandya 2012-12-10  2718                  break;
fd56c2b7 Vipul Pandya 2012-12-10  2719          case 
FW6_TYPE_OFLD_CONNECTION_WR_RPL:
fd56c2b7 Vipul Pandya 2012-12-10  2720                  req = (struct 
cpl_fw6_msg_ofld_connection_wr_rpl *)rpl->data;
fd56c2b7 Vipul Pandya 2012-12-10  2721                  switch (req->t_state) {
fd56c2b7 Vipul Pandya 2012-12-10  2722                  case TCP_SYN_SENT:
fd56c2b7 Vipul Pandya 2012-12-10  2723                          
active_ofld_conn_reply(dev, skb, req);
fd56c2b7 Vipul Pandya 2012-12-10  2724                          break;
fd56c2b7 Vipul Pandya 2012-12-10  2725                  case TCP_SYN_RECV:
fd56c2b7 Vipul Pandya 2012-12-10  2726                          
passive_ofld_conn_reply(dev, skb, req);
fd56c2b7 Vipul Pandya 2012-12-10  2727                          break;
fd56c2b7 Vipul Pandya 2012-12-10  2728                  default:
fd56c2b7 Vipul Pandya 2012-12-10  2729                          pr_err("%s 
unexpected ofld conn wr state %d\n",
fd56c2b7 Vipul Pandya 2012-12-10  2730                                 
__func__, req->t_state);
fd56c2b7 Vipul Pandya 2012-12-10  2731                          break;
fd56c2b7 Vipul Pandya 2012-12-10  2732                  }
fd56c2b7 Vipul Pandya 2012-12-10  2733                  break;
fd56c2b7 Vipul Pandya 2012-12-10  2734          }
fd56c2b7 Vipul Pandya 2012-12-10  2735          return 0;
fd56c2b7 Vipul Pandya 2012-12-10  2736  }
fd56c2b7 Vipul Pandya 2012-12-10  2737  
fd56c2b7 Vipul Pandya 2012-12-10  2738  static void 
build_cpl_pass_accept_req(struct sk_buff *skb, int stid , u8 tos)
fd56c2b7 Vipul Pandya 2012-12-10  2739  {
fd56c2b7 Vipul Pandya 2012-12-10  2740          u32 l2info;
fd56c2b7 Vipul Pandya 2012-12-10  2741          u16 vlantag, len, hdr_len;
fd56c2b7 Vipul Pandya 2012-12-10  2742          u8 intf;
fd56c2b7 Vipul Pandya 2012-12-10  2743          struct cpl_rx_pkt *cpl = 
cplhdr(skb);
fd56c2b7 Vipul Pandya 2012-12-10  2744          struct cpl_pass_accept_req *req;
fd56c2b7 Vipul Pandya 2012-12-10  2745          struct tcp_options_received 
tmp_opt;
fd56c2b7 Vipul Pandya 2012-12-10  2746  
fd56c2b7 Vipul Pandya 2012-12-10  2747          /* Store values from cpl_rx_pkt 
in temporary location. */
fd56c2b7 Vipul Pandya 2012-12-10  2748          vlantag = cpl->vlan;
fd56c2b7 Vipul Pandya 2012-12-10  2749          len = cpl->len;
fd56c2b7 Vipul Pandya 2012-12-10  2750          l2info  = cpl->l2info;
fd56c2b7 Vipul Pandya 2012-12-10 @2751          hdr_len = cpl->hdr_len;
fd56c2b7 Vipul Pandya 2012-12-10  2752          intf = cpl->iff;
fd56c2b7 Vipul Pandya 2012-12-10  2753  
fd56c2b7 Vipul Pandya 2012-12-10  2754          __skb_pull(skb, sizeof(*req) + 
sizeof(struct rss_header));
fd56c2b7 Vipul Pandya 2012-12-10  2755  
fd56c2b7 Vipul Pandya 2012-12-10  2756          /*
fd56c2b7 Vipul Pandya 2012-12-10  2757           * We need to parse the TCP 
options from SYN packet.
fd56c2b7 Vipul Pandya 2012-12-10  2758           * to generate 
cpl_pass_accept_req.
fd56c2b7 Vipul Pandya 2012-12-10  2759           */
fd56c2b7 Vipul Pandya 2012-12-10  2760          memset(&tmp_opt, 0, 
sizeof(tmp_opt));
fd56c2b7 Vipul Pandya 2012-12-10  2761          tcp_clear_options(&tmp_opt);
fd56c2b7 Vipul Pandya 2012-12-10 @2762          tcp_parse_options(skb, 
&tmp_opt, 0, 0, NULL);
fd56c2b7 Vipul Pandya 2012-12-10  2763  
fd56c2b7 Vipul Pandya 2012-12-10  2764          req = (struct 
cpl_pass_accept_req *)__skb_push(skb, sizeof(*req));
fd56c2b7 Vipul Pandya 2012-12-10  2765          memset(req, 0, sizeof(*req));
fd56c2b7 Vipul Pandya 2012-12-10  2766          req->l2info = 
cpu_to_be16(V_SYN_INTF(intf) |
fd56c2b7 Vipul Pandya 2012-12-10  2767                           
V_SYN_MAC_IDX(G_RX_MACIDX(htonl(l2info))) |
fd56c2b7 Vipul Pandya 2012-12-10  2768                           
F_SYN_XACT_MATCH);
fd56c2b7 Vipul Pandya 2012-12-10 @2769          req->hdr_len = 
cpu_to_be32(V_SYN_RX_CHAN(G_RX_CHAN(htonl(l2info))) |
fd56c2b7 Vipul Pandya 2012-12-10  2770                                  
V_TCP_HDR_LEN(G_RX_TCPHDR_LEN(htons(hdr_len))) |
fd56c2b7 Vipul Pandya 2012-12-10  2771                                  
V_IP_HDR_LEN(G_RX_IPHDR_LEN(htons(hdr_len))) |
fd56c2b7 Vipul Pandya 2012-12-10  2772                                  
V_ETH_HDR_LEN(G_RX_ETHHDR_LEN(htonl(l2info))));
fd56c2b7 Vipul Pandya 2012-12-10 @2773          req->vlan = vlantag;
fd56c2b7 Vipul Pandya 2012-12-10  2774          req->len = len;
fd56c2b7 Vipul Pandya 2012-12-10  2775          req->tos_stid = 
cpu_to_be32(PASS_OPEN_TID(stid) |
fd56c2b7 Vipul Pandya 2012-12-10  2776                                      
PASS_OPEN_TOS(tos));

---
0-DAY kernel build testing backend         Open Source Technology Center
Fengguang Wu, Yuanhan Liu                              Intel Corporation
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to