diff options
author | David S. Miller <davem@davemloft.net> | 2014-05-24 00:32:30 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-05-24 00:32:30 -0400 |
commit | 54e5c4def0614ab540fbdf68e45342a4af141702 (patch) | |
tree | 95a2f61c72336932e83d9e4180cd9739106d624b /drivers/net/macvlan.c | |
parent | be65de7174123e02477bd488db1a657caf0f9947 (diff) | |
parent | 1ee1ceafb572f1a925809168267a7962a4289de8 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
drivers/net/bonding/bond_alb.c
drivers/net/ethernet/altera/altera_msgdma.c
drivers/net/ethernet/altera/altera_sgdma.c
net/ipv6/xfrm6_output.c
Several cases of overlapping changes.
The xfrm6_output.c has a bug fix which overlaps the renaming
of skb->local_df to skb->ignore_df.
In the Altera TSE driver cases, the register access cleanups
in net-next overlapped with bug fixes done in net.
Similarly a bug fix to send ALB packets in the bonding driver using
the right source address overlaps with cleanups in net-next.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/macvlan.c')
-rw-r--r-- | drivers/net/macvlan.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c index f4701da19a02..a665e902b989 100644 --- a/drivers/net/macvlan.c +++ b/drivers/net/macvlan.c | |||
@@ -528,8 +528,10 @@ static void macvlan_change_rx_flags(struct net_device *dev, int change) | |||
528 | struct macvlan_dev *vlan = netdev_priv(dev); | 528 | struct macvlan_dev *vlan = netdev_priv(dev); |
529 | struct net_device *lowerdev = vlan->lowerdev; | 529 | struct net_device *lowerdev = vlan->lowerdev; |
530 | 530 | ||
531 | if (change & IFF_ALLMULTI) | 531 | if (dev->flags & IFF_UP) { |
532 | dev_set_allmulti(lowerdev, dev->flags & IFF_ALLMULTI ? 1 : -1); | 532 | if (change & IFF_ALLMULTI) |
533 | dev_set_allmulti(lowerdev, dev->flags & IFF_ALLMULTI ? 1 : -1); | ||
534 | } | ||
533 | } | 535 | } |
534 | 536 | ||
535 | static void macvlan_set_mac_lists(struct net_device *dev) | 537 | static void macvlan_set_mac_lists(struct net_device *dev) |
@@ -585,6 +587,11 @@ static struct lock_class_key macvlan_netdev_addr_lock_key; | |||
585 | #define MACVLAN_STATE_MASK \ | 587 | #define MACVLAN_STATE_MASK \ |
586 | ((1<<__LINK_STATE_NOCARRIER) | (1<<__LINK_STATE_DORMANT)) | 588 | ((1<<__LINK_STATE_NOCARRIER) | (1<<__LINK_STATE_DORMANT)) |
587 | 589 | ||
590 | static int macvlan_get_nest_level(struct net_device *dev) | ||
591 | { | ||
592 | return ((struct macvlan_dev *)netdev_priv(dev))->nest_level; | ||
593 | } | ||
594 | |||
588 | static void macvlan_set_lockdep_class_one(struct net_device *dev, | 595 | static void macvlan_set_lockdep_class_one(struct net_device *dev, |
589 | struct netdev_queue *txq, | 596 | struct netdev_queue *txq, |
590 | void *_unused) | 597 | void *_unused) |
@@ -595,8 +602,9 @@ static void macvlan_set_lockdep_class_one(struct net_device *dev, | |||
595 | 602 | ||
596 | static void macvlan_set_lockdep_class(struct net_device *dev) | 603 | static void macvlan_set_lockdep_class(struct net_device *dev) |
597 | { | 604 | { |
598 | lockdep_set_class(&dev->addr_list_lock, | 605 | lockdep_set_class_and_subclass(&dev->addr_list_lock, |
599 | &macvlan_netdev_addr_lock_key); | 606 | &macvlan_netdev_addr_lock_key, |
607 | macvlan_get_nest_level(dev)); | ||
600 | netdev_for_each_tx_queue(dev, macvlan_set_lockdep_class_one, NULL); | 608 | netdev_for_each_tx_queue(dev, macvlan_set_lockdep_class_one, NULL); |
601 | } | 609 | } |
602 | 610 | ||
@@ -790,6 +798,7 @@ static const struct net_device_ops macvlan_netdev_ops = { | |||
790 | .ndo_fdb_add = macvlan_fdb_add, | 798 | .ndo_fdb_add = macvlan_fdb_add, |
791 | .ndo_fdb_del = macvlan_fdb_del, | 799 | .ndo_fdb_del = macvlan_fdb_del, |
792 | .ndo_fdb_dump = ndo_dflt_fdb_dump, | 800 | .ndo_fdb_dump = ndo_dflt_fdb_dump, |
801 | .ndo_get_lock_subclass = macvlan_get_nest_level, | ||
793 | }; | 802 | }; |
794 | 803 | ||
795 | void macvlan_common_setup(struct net_device *dev) | 804 | void macvlan_common_setup(struct net_device *dev) |
@@ -922,6 +931,7 @@ int macvlan_common_newlink(struct net *src_net, struct net_device *dev, | |||
922 | vlan->dev = dev; | 931 | vlan->dev = dev; |
923 | vlan->port = port; | 932 | vlan->port = port; |
924 | vlan->set_features = MACVLAN_FEATURES; | 933 | vlan->set_features = MACVLAN_FEATURES; |
934 | vlan->nest_level = dev_get_nest_level(lowerdev, netif_is_macvlan) + 1; | ||
925 | 935 | ||
926 | vlan->mode = MACVLAN_MODE_VEPA; | 936 | vlan->mode = MACVLAN_MODE_VEPA; |
927 | if (data && data[IFLA_MACVLAN_MODE]) | 937 | if (data && data[IFLA_MACVLAN_MODE]) |