diff options
author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2014-01-23 08:10:44 -0800 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2014-01-23 08:10:44 -0800 |
commit | 55df811f2066fcaec2548248f0a1a6a0c12dc6b8 (patch) | |
tree | 0850f490489e5b941692f3fe36dff5d2c1c35c3c /net/bridge/br_private.h | |
parent | 8e2f2325b73f3e5e46ecffd291556f33b8e3f8c9 (diff) | |
parent | 497ab1f290a26fa9414c5c316515f1e2ddba0803 (diff) |
Merge branch 'next' into for-linus
First round of input updates for 3.14.
Diffstat (limited to 'net/bridge/br_private.h')
-rw-r--r-- | net/bridge/br_private.h | 10 |
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, |