diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2010-11-11 04:42:45 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-11-16 14:17:42 -0500 |
commit | 213b15ca818adf7766cd7162c2159a6ecdd3bab8 (patch) | |
tree | e6655afbd3b1b5830543d102e0d2e9f47da9b36a /net/8021q/vlan_dev.c | |
parent | 4af429d29b341bb1735f04c2fb960178ed5d52e7 (diff) |
vlan: remove ndo_select_queue() logic
Now vlan are lockless, we dont need special ndo_select_queue() logic.
dev_pick_tx() will do the multiqueue stuff on the real device transmit.
Suggested-by: Jesse Gross <jesse@nicira.com>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Acked-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/8021q/vlan_dev.c')
-rw-r--r-- | net/8021q/vlan_dev.c | 40 |
1 files changed, 2 insertions, 38 deletions
diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c index 2fa3f4a3f60f..be737539f34d 100644 --- a/net/8021q/vlan_dev.c +++ b/net/8021q/vlan_dev.c | |||
@@ -346,14 +346,6 @@ static netdev_tx_t vlan_dev_hard_start_xmit(struct sk_buff *skb, | |||
346 | return ret; | 346 | return ret; |
347 | } | 347 | } |
348 | 348 | ||
349 | static u16 vlan_dev_select_queue(struct net_device *dev, struct sk_buff *skb) | ||
350 | { | ||
351 | struct net_device *rdev = vlan_dev_info(dev)->real_dev; | ||
352 | const struct net_device_ops *ops = rdev->netdev_ops; | ||
353 | |||
354 | return ops->ndo_select_queue(rdev, skb); | ||
355 | } | ||
356 | |||
357 | static int vlan_dev_change_mtu(struct net_device *dev, int new_mtu) | 349 | static int vlan_dev_change_mtu(struct net_device *dev, int new_mtu) |
358 | { | 350 | { |
359 | /* TODO: gotta make sure the underlying layer can handle it, | 351 | /* TODO: gotta make sure the underlying layer can handle it, |
@@ -682,7 +674,7 @@ static const struct header_ops vlan_header_ops = { | |||
682 | .parse = eth_header_parse, | 674 | .parse = eth_header_parse, |
683 | }; | 675 | }; |
684 | 676 | ||
685 | static const struct net_device_ops vlan_netdev_ops, vlan_netdev_ops_sq; | 677 | static const struct net_device_ops vlan_netdev_ops; |
686 | 678 | ||
687 | static int vlan_dev_init(struct net_device *dev) | 679 | static int vlan_dev_init(struct net_device *dev) |
688 | { | 680 | { |
@@ -723,10 +715,7 @@ static int vlan_dev_init(struct net_device *dev) | |||
723 | dev->hard_header_len = real_dev->hard_header_len + VLAN_HLEN; | 715 | dev->hard_header_len = real_dev->hard_header_len + VLAN_HLEN; |
724 | } | 716 | } |
725 | 717 | ||
726 | if (real_dev->netdev_ops->ndo_select_queue) | 718 | dev->netdev_ops = &vlan_netdev_ops; |
727 | dev->netdev_ops = &vlan_netdev_ops_sq; | ||
728 | else | ||
729 | dev->netdev_ops = &vlan_netdev_ops; | ||
730 | 719 | ||
731 | if (is_vlan_dev(real_dev)) | 720 | if (is_vlan_dev(real_dev)) |
732 | subclass = 1; | 721 | subclass = 1; |
@@ -872,31 +861,6 @@ static const struct net_device_ops vlan_netdev_ops = { | |||
872 | #endif | 861 | #endif |
873 | }; | 862 | }; |
874 | 863 | ||
875 | static const struct net_device_ops vlan_netdev_ops_sq = { | ||
876 | .ndo_select_queue = vlan_dev_select_queue, | ||
877 | .ndo_change_mtu = vlan_dev_change_mtu, | ||
878 | .ndo_init = vlan_dev_init, | ||
879 | .ndo_uninit = vlan_dev_uninit, | ||
880 | .ndo_open = vlan_dev_open, | ||
881 | .ndo_stop = vlan_dev_stop, | ||
882 | .ndo_start_xmit = vlan_dev_hard_start_xmit, | ||
883 | .ndo_validate_addr = eth_validate_addr, | ||
884 | .ndo_set_mac_address = vlan_dev_set_mac_address, | ||
885 | .ndo_set_rx_mode = vlan_dev_set_rx_mode, | ||
886 | .ndo_set_multicast_list = vlan_dev_set_rx_mode, | ||
887 | .ndo_change_rx_flags = vlan_dev_change_rx_flags, | ||
888 | .ndo_do_ioctl = vlan_dev_ioctl, | ||
889 | .ndo_neigh_setup = vlan_dev_neigh_setup, | ||
890 | .ndo_get_stats64 = vlan_dev_get_stats64, | ||
891 | #if defined(CONFIG_FCOE) || defined(CONFIG_FCOE_MODULE) | ||
892 | .ndo_fcoe_ddp_setup = vlan_dev_fcoe_ddp_setup, | ||
893 | .ndo_fcoe_ddp_done = vlan_dev_fcoe_ddp_done, | ||
894 | .ndo_fcoe_enable = vlan_dev_fcoe_enable, | ||
895 | .ndo_fcoe_disable = vlan_dev_fcoe_disable, | ||
896 | .ndo_fcoe_get_wwn = vlan_dev_fcoe_get_wwn, | ||
897 | #endif | ||
898 | }; | ||
899 | |||
900 | void vlan_setup(struct net_device *dev) | 864 | void vlan_setup(struct net_device *dev) |
901 | { | 865 | { |
902 | ether_setup(dev); | 866 | ether_setup(dev); |