summaryrefslogtreecommitdiff
path: root/drivers/infiniband/hw/cxgb3/iwch_cm.c
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2011-12-06 18:23:35 +0400
committerArnd Bergmann <arnd@arndb.de>2011-12-06 18:23:35 +0400
commit3642a0a2c7d2d1949988d0fd004a8039c1f3d02f (patch)
treee687c88b1b66ad51a6a6c529f7f328f2d3b625fa /drivers/infiniband/hw/cxgb3/iwch_cm.c
parent58a273745fbb2fbd01d26e7a60f0acc8c1d99469 (diff)
parentb07fed455c883f07f8e847f5b0d79975b4dc8e7a (diff)
downloadlinux-3642a0a2c7d2d1949988d0fd004a8039c1f3d02f.tar.xz
Merge branch 'mxs/saif' into next/drivers
Conflicts: drivers/net/ethernet/cadence/Kconfig
Diffstat (limited to 'drivers/infiniband/hw/cxgb3/iwch_cm.c')
-rw-r--r--drivers/infiniband/hw/cxgb3/iwch_cm.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/cxgb3/iwch_cm.c b/drivers/infiniband/hw/cxgb3/iwch_cm.c
index de6d0774e609..c88b12beef25 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_cm.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_cm.c
@@ -1375,8 +1375,10 @@ static int pass_accept_req(struct t3cdev *tdev, struct sk_buff *skb, void *ctx)
goto reject;
}
dst = &rt->dst;
+ rcu_read_lock();
neigh = dst_get_neighbour(dst);
l2t = t3_l2t_get(tdev, neigh, neigh->dev);
+ rcu_read_unlock();
if (!l2t) {
printk(KERN_ERR MOD "%s - failed to allocate l2t entry!\n",
__func__);
@@ -1946,10 +1948,12 @@ int iwch_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
}
ep->dst = &rt->dst;
+ rcu_read_lock();
neigh = dst_get_neighbour(ep->dst);
/* get a l2t entry */
ep->l2t = t3_l2t_get(ep->com.tdev, neigh, neigh->dev);
+ rcu_read_unlock();
if (!ep->l2t) {
printk(KERN_ERR MOD "%s - cannot alloc l2e.\n", __func__);
err = -ENOMEM;