From: Thadeu Lima de Souza Cascardo Date: Thu, 17 May 2012 20:51:53 +0000 (-0300) Subject: RDMA/cxgb4: Fix crash when peer address is 0.0.0.0 X-Git-Tag: v3.5-rc2~20^2~1 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=71b43fd573a60972b2175df4927c4ee10d757004;p=~emulex%2Finfiniband.git RDMA/cxgb4: Fix crash when peer address is 0.0.0.0 When using rping -c -a 0.0.0.0 with iw_cxgb4, the system crashes when rdma_connect() is called. ip_dev_find() will return NULL, but pdev is accessed anyway. Checking that pdev is NULL and returning -ENODEV prevents the system from crashing. Signed-off-by: Thadeu Lima de Souza Cascardo Acked-by: Steve Wise Signed-off-by: Roland Dreier --- diff --git a/drivers/infiniband/hw/cxgb4/cm.c b/drivers/infiniband/hw/cxgb4/cm.c index 55ab284e22f..b18870c455a 100644 --- a/drivers/infiniband/hw/cxgb4/cm.c +++ b/drivers/infiniband/hw/cxgb4/cm.c @@ -1593,6 +1593,10 @@ static int import_ep(struct c4iw_ep *ep, __be32 peer_ip, struct dst_entry *dst, struct net_device *pdev; pdev = ip_dev_find(&init_net, peer_ip); + if (!pdev) { + err = -ENODEV; + goto out; + } ep->l2t = cxgb4_l2t_get(cdev->rdev.lldi.l2t, n, pdev, 0); if (!ep->l2t)