projects
/
platform
/
kernel
/
linux-exynos.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
81f99dc
)
RDMA/nes: Add missing rcu_read_unlock() in nes_addr_resolve_neigh()
author
Roland Dreier
<roland@purestorage.com>
Fri, 27 Jan 2012 17:54:30 +0000
(09:54 -0800)
committer
Roland Dreier
<roland@purestorage.com>
Fri, 27 Jan 2012 17:54:30 +0000
(09:54 -0800)
Make sure all exit paths from this function unlock everything.
Reported-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/hw/nes/nes_cm.c
patch
|
blob
|
history
diff --git
a/drivers/infiniband/hw/nes/nes_cm.c
b/drivers/infiniband/hw/nes/nes_cm.c
index
183f7ab
..
271279c
100644
(file)
--- a/
drivers/infiniband/hw/nes/nes_cm.c
+++ b/
drivers/infiniband/hw/nes/nes_cm.c
@@
-1363,8
+1363,7
@@
static int nes_addr_resolve_neigh(struct nes_vnic *nesvnic, u32 dst_ip, int arpi
if (!memcmp(nesadapter->arp_table[arpindex].mac_addr,
neigh->ha, ETH_ALEN)) {
/* Mac address same as in nes_arp_table */
- ip_rt_put(rt);
- return rc;
+ goto out;
}
nes_manage_arp_cache(nesvnic->netdev,
@@
-1380,6
+1379,8
@@
static int nes_addr_resolve_neigh(struct nes_vnic *nesvnic, u32 dst_ip, int arpi
neigh_event_send(neigh, NULL);
}
}
+
+out:
rcu_read_unlock();
ip_rt_put(rt);
return rc;