]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/net/macvlan.c
Merge branch 'fix/asoc' into for-linus
[linux-2.6-omap-h63xx.git] / drivers / net / macvlan.c
index efbc15567dd326b61887958f29f2c30f712f0304..590039cbb146f5a42b888055cc836ea576f23726 100644 (file)
@@ -70,6 +70,9 @@ static void macvlan_broadcast(struct sk_buff *skb,
        struct sk_buff *nskb;
        unsigned int i;
 
+       if (skb->protocol == htons(ETH_P_PAUSE))
+               return;
+
        for (i = 0; i < MACVLAN_HASH_SIZE; i++) {
                hlist_for_each_entry_rcu(vlan, n, &port->vlan_hash[i], hlist) {
                        dev = vlan->dev;
@@ -276,6 +279,7 @@ static int macvlan_change_mtu(struct net_device *dev, int new_mtu)
  * separate class since they always nest.
  */
 static struct lock_class_key macvlan_netdev_xmit_lock_key;
+static struct lock_class_key macvlan_netdev_addr_lock_key;
 
 #define MACVLAN_FEATURES \
        (NETIF_F_SG | NETIF_F_ALL_CSUM | NETIF_F_HIGHDMA | NETIF_F_FRAGLIST | \
@@ -295,6 +299,8 @@ static void macvlan_set_lockdep_class_one(struct net_device *dev,
 
 static void macvlan_set_lockdep_class(struct net_device *dev)
 {
+       lockdep_set_class(&dev->addr_list_lock,
+                         &macvlan_netdev_addr_lock_key);
        netdev_for_each_tx_queue(dev, macvlan_set_lockdep_class_one, NULL);
 }