summaryrefslogtreecommitdiff
path: root/net/bridge/br_private.h
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-12-16 16:11:28 -0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-12-16 16:11:28 -0800
commit138a6d7ea2deb3080116a4f99019e181b62e5ce5 (patch)
tree424622059405352935fbf1dde015a1e130b56198 /net/bridge/br_private.h
parent4fc6069e7df873bda9baabe0fa9f0be23363159a (diff)
parent319e2e3f63c348a9b66db4667efa73178e18b17d (diff)
downloadlinux-138a6d7ea2deb3080116a4f99019e181b62e5ce5.tar.gz
linux-138a6d7ea2deb3080116a4f99019e181b62e5ce5.tar.bz2
linux-138a6d7ea2deb3080116a4f99019e181b62e5ce5.zip
Merge 3.13-rc4 into char-misc-next
We want these fixes in here.
Diffstat (limited to 'net/bridge/br_private.h')
-rw-r--r--net/bridge/br_private.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h
index 229d820bdf0b..045d56eaeca2 100644
--- a/net/bridge/br_private.h
+++ b/net/bridge/br_private.h
@@ -426,6 +426,16 @@ netdev_features_t br_features_recompute(struct net_bridge *br,
int br_handle_frame_finish(struct sk_buff *skb);
rx_handler_result_t br_handle_frame(struct sk_buff **pskb);
+static inline bool br_rx_handler_check_rcu(const struct net_device *dev)
+{
+ return rcu_dereference(dev->rx_handler) == br_handle_frame;
+}
+
+static inline struct net_bridge_port *br_port_get_check_rcu(const struct net_device *dev)
+{
+ return br_rx_handler_check_rcu(dev) ? br_port_get_rcu(dev) : NULL;
+}
+
/* br_ioctl.c */
int br_dev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
int br_ioctl_deviceless_stub(struct net *net, unsigned int cmd,