diff options
author | Nikolay Aleksandrov <nikolay@cumulusnetworks.com> | 2017-02-13 14:59:09 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-02-14 18:41:02 +0100 |
commit | bfd0aeac52f74bfb44c0974131e44abb33a13e78 (patch) | |
tree | 674273a1c6b5c793891030060abf6bc836e6de62 /net/bridge/br_input.c | |
parent | net:dsa:mv88e6xxx: use watchdog ops for 6097 chip (diff) | |
download | linux-bfd0aeac52f74bfb44c0974131e44abb33a13e78.tar.xz linux-bfd0aeac52f74bfb44c0974131e44abb33a13e78.zip |
bridge: fdb: converge fdb searching functions into one
Before this patch we had 3 different fdb searching functions which was
confusing. This patch reduces all of them to one - fdb_find_rcu(), and
two flavors: br_fdb_find() which requires hash_lock and br_fdb_find_rcu
which requires RCU. This makes it clear what needs to be used, we also
remove two abusers of __br_fdb_get which called it under hash_lock and
replace them with br_fdb_find().
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/bridge/br_input.c')
-rw-r--r-- | net/bridge/br_input.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c index 4615a9b3e26c..236f34244dbe 100644 --- a/net/bridge/br_input.c +++ b/net/bridge/br_input.c @@ -114,7 +114,7 @@ static void br_do_proxy_arp(struct sk_buff *skb, struct net_bridge *br, return; } - f = __br_fdb_get(br, n->ha, vid); + f = br_fdb_find_rcu(br, n->ha, vid); if (f && ((p->flags & BR_PROXYARP) || (f->dst && (f->dst->flags & BR_PROXYARP_WIFI)))) { arp_send(ARPOP_REPLY, ETH_P_ARP, sip, skb->dev, tip, @@ -189,7 +189,7 @@ int br_handle_frame_finish(struct net *net, struct sock *sk, struct sk_buff *skb } break; case BR_PKT_UNICAST: - dst = __br_fdb_get(br, dest, vid); + dst = br_fdb_find_rcu(br, dest, vid); default: break; } |