diff options
-rw-r--r-- | drivers/net/ethernet/lantiq_etop.c | 10 | ||||
-rw-r--r-- | drivers/net/ethernet/ti/netcp_core.c | 9 | ||||
-rw-r--r-- | drivers/staging/netlogic/xlr_net.c | 9 | ||||
-rw-r--r-- | include/linux/netdevice.h | 4 | ||||
-rw-r--r-- | net/core/dev.c | 14 | ||||
-rw-r--r-- | net/packet/af_packet.c | 2 |
6 files changed, 22 insertions, 26 deletions
diff --git a/drivers/net/ethernet/lantiq_etop.c b/drivers/net/ethernet/lantiq_etop.c index afc810069440..7a637b51c7d2 100644 --- a/drivers/net/ethernet/lantiq_etop.c +++ b/drivers/net/ethernet/lantiq_etop.c | |||
@@ -563,14 +563,6 @@ ltq_etop_set_multicast_list(struct net_device *dev) | |||
563 | spin_unlock_irqrestore(&priv->lock, flags); | 563 | spin_unlock_irqrestore(&priv->lock, flags); |
564 | } | 564 | } |
565 | 565 | ||
566 | static u16 | ||
567 | ltq_etop_select_queue(struct net_device *dev, struct sk_buff *skb, | ||
568 | void *accel_priv, select_queue_fallback_t fallback) | ||
569 | { | ||
570 | /* we are currently only using the first queue */ | ||
571 | return 0; | ||
572 | } | ||
573 | |||
574 | static int | 566 | static int |
575 | ltq_etop_init(struct net_device *dev) | 567 | ltq_etop_init(struct net_device *dev) |
576 | { | 568 | { |
@@ -641,7 +633,7 @@ static const struct net_device_ops ltq_eth_netdev_ops = { | |||
641 | .ndo_set_mac_address = ltq_etop_set_mac_address, | 633 | .ndo_set_mac_address = ltq_etop_set_mac_address, |
642 | .ndo_validate_addr = eth_validate_addr, | 634 | .ndo_validate_addr = eth_validate_addr, |
643 | .ndo_set_rx_mode = ltq_etop_set_multicast_list, | 635 | .ndo_set_rx_mode = ltq_etop_set_multicast_list, |
644 | .ndo_select_queue = ltq_etop_select_queue, | 636 | .ndo_select_queue = dev_pick_tx_zero, |
645 | .ndo_init = ltq_etop_init, | 637 | .ndo_init = ltq_etop_init, |
646 | .ndo_tx_timeout = ltq_etop_tx_timeout, | 638 | .ndo_tx_timeout = ltq_etop_tx_timeout, |
647 | }; | 639 | }; |
diff --git a/drivers/net/ethernet/ti/netcp_core.c b/drivers/net/ethernet/ti/netcp_core.c index 6ebf110cd594..a1d335a3c5e4 100644 --- a/drivers/net/ethernet/ti/netcp_core.c +++ b/drivers/net/ethernet/ti/netcp_core.c | |||
@@ -1889,13 +1889,6 @@ static int netcp_rx_kill_vid(struct net_device *ndev, __be16 proto, u16 vid) | |||
1889 | return err; | 1889 | return err; |
1890 | } | 1890 | } |
1891 | 1891 | ||
1892 | static u16 netcp_select_queue(struct net_device *dev, struct sk_buff *skb, | ||
1893 | void *accel_priv, | ||
1894 | select_queue_fallback_t fallback) | ||
1895 | { | ||
1896 | return 0; | ||
1897 | } | ||
1898 | |||
1899 | static int netcp_setup_tc(struct net_device *dev, enum tc_setup_type type, | 1892 | static int netcp_setup_tc(struct net_device *dev, enum tc_setup_type type, |
1900 | void *type_data) | 1893 | void *type_data) |
1901 | { | 1894 | { |
@@ -1972,7 +1965,7 @@ static const struct net_device_ops netcp_netdev_ops = { | |||
1972 | .ndo_vlan_rx_add_vid = netcp_rx_add_vid, | 1965 | .ndo_vlan_rx_add_vid = netcp_rx_add_vid, |
1973 | .ndo_vlan_rx_kill_vid = netcp_rx_kill_vid, | 1966 | .ndo_vlan_rx_kill_vid = netcp_rx_kill_vid, |
1974 | .ndo_tx_timeout = netcp_ndo_tx_timeout, | 1967 | .ndo_tx_timeout = netcp_ndo_tx_timeout, |
1975 | .ndo_select_queue = netcp_select_queue, | 1968 | .ndo_select_queue = dev_pick_tx_zero, |
1976 | .ndo_setup_tc = netcp_setup_tc, | 1969 | .ndo_setup_tc = netcp_setup_tc, |
1977 | }; | 1970 | }; |
1978 | 1971 | ||
diff --git a/drivers/staging/netlogic/xlr_net.c b/drivers/staging/netlogic/xlr_net.c index e461168313bf..4e6611e4c59b 100644 --- a/drivers/staging/netlogic/xlr_net.c +++ b/drivers/staging/netlogic/xlr_net.c | |||
@@ -290,13 +290,6 @@ static netdev_tx_t xlr_net_start_xmit(struct sk_buff *skb, | |||
290 | return NETDEV_TX_OK; | 290 | return NETDEV_TX_OK; |
291 | } | 291 | } |
292 | 292 | ||
293 | static u16 xlr_net_select_queue(struct net_device *ndev, struct sk_buff *skb, | ||
294 | void *accel_priv, | ||
295 | select_queue_fallback_t fallback) | ||
296 | { | ||
297 | return (u16)smp_processor_id(); | ||
298 | } | ||
299 | |||
300 | static void xlr_hw_set_mac_addr(struct net_device *ndev) | 293 | static void xlr_hw_set_mac_addr(struct net_device *ndev) |
301 | { | 294 | { |
302 | struct xlr_net_priv *priv = netdev_priv(ndev); | 295 | struct xlr_net_priv *priv = netdev_priv(ndev); |
@@ -403,7 +396,7 @@ static const struct net_device_ops xlr_netdev_ops = { | |||
403 | .ndo_open = xlr_net_open, | 396 | .ndo_open = xlr_net_open, |
404 | .ndo_stop = xlr_net_stop, | 397 | .ndo_stop = xlr_net_stop, |
405 | .ndo_start_xmit = xlr_net_start_xmit, | 398 | .ndo_start_xmit = xlr_net_start_xmit, |
406 | .ndo_select_queue = xlr_net_select_queue, | 399 | .ndo_select_queue = dev_pick_tx_cpu_id, |
407 | .ndo_set_mac_address = xlr_net_set_mac_addr, | 400 | .ndo_set_mac_address = xlr_net_set_mac_addr, |
408 | .ndo_set_rx_mode = xlr_set_rx_mode, | 401 | .ndo_set_rx_mode = xlr_set_rx_mode, |
409 | .ndo_get_stats64 = xlr_stats, | 402 | .ndo_get_stats64 = xlr_stats, |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index fda0bcda7a42..46f4c44ce3e4 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -2567,6 +2567,10 @@ void dev_close(struct net_device *dev); | |||
2567 | void dev_close_many(struct list_head *head, bool unlink); | 2567 | void dev_close_many(struct list_head *head, bool unlink); |
2568 | void dev_disable_lro(struct net_device *dev); | 2568 | void dev_disable_lro(struct net_device *dev); |
2569 | int dev_loopback_xmit(struct net *net, struct sock *sk, struct sk_buff *newskb); | 2569 | int dev_loopback_xmit(struct net *net, struct sock *sk, struct sk_buff *newskb); |
2570 | u16 dev_pick_tx_zero(struct net_device *dev, struct sk_buff *skb, | ||
2571 | void *accel_priv, select_queue_fallback_t fallback); | ||
2572 | u16 dev_pick_tx_cpu_id(struct net_device *dev, struct sk_buff *skb, | ||
2573 | void *accel_priv, select_queue_fallback_t fallback); | ||
2570 | int dev_queue_xmit(struct sk_buff *skb); | 2574 | int dev_queue_xmit(struct sk_buff *skb); |
2571 | int dev_queue_xmit_accel(struct sk_buff *skb, struct net_device *sb_dev); | 2575 | int dev_queue_xmit_accel(struct sk_buff *skb, struct net_device *sb_dev); |
2572 | int dev_direct_xmit(struct sk_buff *skb, u16 queue_id); | 2576 | int dev_direct_xmit(struct sk_buff *skb, u16 queue_id); |
diff --git a/net/core/dev.c b/net/core/dev.c index 09a7cc2f3c55..b5e538032d5e 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -3617,6 +3617,20 @@ get_cpus_map: | |||
3617 | #endif | 3617 | #endif |
3618 | } | 3618 | } |
3619 | 3619 | ||
3620 | u16 dev_pick_tx_zero(struct net_device *dev, struct sk_buff *skb, | ||
3621 | void *accel_priv, select_queue_fallback_t fallback) | ||
3622 | { | ||
3623 | return 0; | ||
3624 | } | ||
3625 | EXPORT_SYMBOL(dev_pick_tx_zero); | ||
3626 | |||
3627 | u16 dev_pick_tx_cpu_id(struct net_device *dev, struct sk_buff *skb, | ||
3628 | void *accel_priv, select_queue_fallback_t fallback) | ||
3629 | { | ||
3630 | return (u16)raw_smp_processor_id() % dev->real_num_tx_queues; | ||
3631 | } | ||
3632 | EXPORT_SYMBOL(dev_pick_tx_cpu_id); | ||
3633 | |||
3620 | static u16 ___netdev_pick_tx(struct net_device *dev, struct sk_buff *skb, | 3634 | static u16 ___netdev_pick_tx(struct net_device *dev, struct sk_buff *skb, |
3621 | struct net_device *sb_dev) | 3635 | struct net_device *sb_dev) |
3622 | { | 3636 | { |
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index 47931ebfaef3..f37d087ae652 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c | |||
@@ -277,7 +277,7 @@ static bool packet_use_direct_xmit(const struct packet_sock *po) | |||
277 | 277 | ||
278 | static u16 __packet_pick_tx_queue(struct net_device *dev, struct sk_buff *skb) | 278 | static u16 __packet_pick_tx_queue(struct net_device *dev, struct sk_buff *skb) |
279 | { | 279 | { |
280 | return (u16) raw_smp_processor_id() % dev->real_num_tx_queues; | 280 | return dev_pick_tx_cpu_id(dev, skb, NULL, NULL); |
281 | } | 281 | } |
282 | 282 | ||
283 | static u16 packet_pick_tx_queue(struct sk_buff *skb) | 283 | static u16 packet_pick_tx_queue(struct sk_buff *skb) |