X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=net%2Fbridge%2Fbr_device.c;h=0c88a2ac32c1bc4fb5144c56696fb04abf708af7;hb=63589ed0785ffc715777a54ccb96cdfaea9edbc0;hp=0b33a7b3a00cd5c05b0b8e16ec91f0aec4a58599;hpb=0a75c23a009ff65f651532cecc16675d05f4de37;p=powerpc.git diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c index 0b33a7b3a0..0c88a2ac32 100644 --- a/net/bridge/br_device.c +++ b/net/bridge/br_device.c @@ -27,6 +27,7 @@ static struct net_device_stats *br_dev_get_stats(struct net_device *dev) return &br->statistics; } +/* net device transmit always called with no BH (preempt_disabled) */ int br_dev_xmit(struct sk_buff *skb, struct net_device *dev) { struct net_bridge *br = netdev_priv(dev); @@ -39,7 +40,6 @@ int br_dev_xmit(struct sk_buff *skb, struct net_device *dev) skb->mac.raw = skb->data; skb_pull(skb, ETH_HLEN); - rcu_read_lock(); if (dest[0] & 1) br_flood_deliver(br, skb, 0); else if ((dst = __br_fdb_get(br, dest)) != NULL) @@ -47,7 +47,6 @@ int br_dev_xmit(struct sk_buff *skb, struct net_device *dev) else br_flood_deliver(br, skb, 0); - rcu_read_unlock(); return 0; }