diff options
author | David S. Miller <davem@davemloft.net> | 2014-07-16 17:09:34 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-07-16 17:09:34 -0400 |
commit | 1a98c69af1ecd97bfd1f4e4539924a9192434e36 (patch) | |
tree | a243defcf921ea174f8e43fce11d06830a6a9c36 /net/8021q | |
parent | 7a575f6b907ea5d207d2b5010293c189616eae34 (diff) | |
parent | b6603fe574af289dbe9eb9fb4c540bca04f5a053 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/8021q')
-rw-r--r-- | net/8021q/vlan_dev.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c index 9d0223b16b46..35a6b6b15e8a 100644 --- a/net/8021q/vlan_dev.c +++ b/net/8021q/vlan_dev.c | |||
@@ -629,8 +629,6 @@ static void vlan_dev_uninit(struct net_device *dev) | |||
629 | struct vlan_dev_priv *vlan = vlan_dev_priv(dev); | 629 | struct vlan_dev_priv *vlan = vlan_dev_priv(dev); |
630 | int i; | 630 | int i; |
631 | 631 | ||
632 | free_percpu(vlan->vlan_pcpu_stats); | ||
633 | vlan->vlan_pcpu_stats = NULL; | ||
634 | for (i = 0; i < ARRAY_SIZE(vlan->egress_priority_map); i++) { | 632 | for (i = 0; i < ARRAY_SIZE(vlan->egress_priority_map); i++) { |
635 | while ((pm = vlan->egress_priority_map[i]) != NULL) { | 633 | while ((pm = vlan->egress_priority_map[i]) != NULL) { |
636 | vlan->egress_priority_map[i] = pm->next; | 634 | vlan->egress_priority_map[i] = pm->next; |
@@ -787,6 +785,15 @@ static const struct net_device_ops vlan_netdev_ops = { | |||
787 | .ndo_get_lock_subclass = vlan_dev_get_lock_subclass, | 785 | .ndo_get_lock_subclass = vlan_dev_get_lock_subclass, |
788 | }; | 786 | }; |
789 | 787 | ||
788 | static void vlan_dev_free(struct net_device *dev) | ||
789 | { | ||
790 | struct vlan_dev_priv *vlan = vlan_dev_priv(dev); | ||
791 | |||
792 | free_percpu(vlan->vlan_pcpu_stats); | ||
793 | vlan->vlan_pcpu_stats = NULL; | ||
794 | free_netdev(dev); | ||
795 | } | ||
796 | |||
790 | void vlan_setup(struct net_device *dev) | 797 | void vlan_setup(struct net_device *dev) |
791 | { | 798 | { |
792 | ether_setup(dev); | 799 | ether_setup(dev); |
@@ -796,7 +803,7 @@ void vlan_setup(struct net_device *dev) | |||
796 | dev->tx_queue_len = 0; | 803 | dev->tx_queue_len = 0; |
797 | 804 | ||
798 | dev->netdev_ops = &vlan_netdev_ops; | 805 | dev->netdev_ops = &vlan_netdev_ops; |
799 | dev->destructor = free_netdev; | 806 | dev->destructor = vlan_dev_free; |
800 | dev->ethtool_ops = &vlan_ethtool_ops; | 807 | dev->ethtool_ops = &vlan_ethtool_ops; |
801 | 808 | ||
802 | memset(dev->broadcast, 0, ETH_ALEN); | 809 | memset(dev->broadcast, 0, ETH_ALEN); |