From: Steve Wise Date: Tue, 6 Aug 2013 15:34:37 +0000 (+0530) Subject: RDMA/cxgb4: Set arp error handler for PASS_ACCEPT_RPL messages X-Git-Tag: v3.12-rc1~139^2~4 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=b38a0ad8ec1129bc2fdadc3baed45ff70d5726e2;p=linux-2.6-block.git RDMA/cxgb4: Set arp error handler for PASS_ACCEPT_RPL messages accept_cr() failed to set the arp error handler on a reused skb. This results in a kernel crash if the arp does indeed time out. Signed-off-by: Steve Wise Signed-off-by: Vipul Pandya Signed-off-by: Roland Dreier --- diff --git a/drivers/infiniband/hw/cxgb4/cm.c b/drivers/infiniband/hw/cxgb4/cm.c index 8865a3332a62..12fef76c791c 100644 --- a/drivers/infiniband/hw/cxgb4/cm.c +++ b/drivers/infiniband/hw/cxgb4/cm.c @@ -332,6 +332,7 @@ static struct sk_buff *get_skb(struct sk_buff *skb, int len, gfp_t gfp) } else { skb = alloc_skb(len, gfp); } + t4_set_arp_err_handler(skb, NULL, NULL); return skb; } @@ -2025,6 +2026,7 @@ static void accept_cr(struct c4iw_ep *ep, struct sk_buff *skb, rpl->opt0 = cpu_to_be64(opt0); rpl->opt2 = cpu_to_be32(opt2); set_wr_txq(skb, CPL_PRIORITY_SETUP, ep->ctrlq_idx); + t4_set_arp_err_handler(skb, NULL, arp_failure_discard); c4iw_l2t_send(&ep->com.dev->rdev, skb, ep->l2t); return;