From ebc8076a6b609cbd10c5ae5831cf8e0f01021513 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Tue, 14 Aug 2012 08:19:33 -0700 Subject: [PATCH] --- yaml --- r: 322008 b: refs/heads/master c: c03307eab68d583ea6db917681afa14ed1fb3b84 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/bridge/br_device.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 67c23fe6b637..953a58bc70db 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7bab3ae7608292fd987e390dec9fc21fd6dc4d7d +refs/heads/master: c03307eab68d583ea6db917681afa14ed1fb3b84 diff --git a/trunk/net/bridge/br_device.c b/trunk/net/bridge/br_device.c index 32211fa5b506..070e8a68cfc6 100644 --- a/trunk/net/bridge/br_device.c +++ b/trunk/net/bridge/br_device.c @@ -31,9 +31,11 @@ netdev_tx_t br_dev_xmit(struct sk_buff *skb, struct net_device *dev) struct net_bridge_mdb_entry *mdst; struct br_cpu_netstats *brstats = this_cpu_ptr(br->stats); + rcu_read_lock(); #ifdef CONFIG_BRIDGE_NETFILTER if (skb->nf_bridge && (skb->nf_bridge->mask & BRNF_BRIDGED_DNAT)) { br_nf_pre_routing_finish_bridge_slow(skb); + rcu_read_unlock(); return NETDEV_TX_OK; } #endif @@ -48,7 +50,6 @@ netdev_tx_t br_dev_xmit(struct sk_buff *skb, struct net_device *dev) skb_reset_mac_header(skb); skb_pull(skb, ETH_HLEN); - rcu_read_lock(); if (is_broadcast_ether_addr(dest)) br_flood_deliver(br, skb); else if (is_multicast_ether_addr(dest)) {