aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/ethernet/lantiq_etop.c10
-rw-r--r--drivers/net/ethernet/ti/netcp_core.c9
-rw-r--r--drivers/staging/netlogic/xlr_net.c9
-rw-r--r--include/linux/netdevice.h4
-rw-r--r--net/core/dev.c14
-rw-r--r--net/packet/af_packet.c2
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
566static u16
567ltq_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
574static int 566static int
575ltq_etop_init(struct net_device *dev) 567ltq_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
1892static 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
1899static int netcp_setup_tc(struct net_device *dev, enum tc_setup_type type, 1892static 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
293static 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
300static void xlr_hw_set_mac_addr(struct net_device *ndev) 293static 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);
2567void dev_close_many(struct list_head *head, bool unlink); 2567void dev_close_many(struct list_head *head, bool unlink);
2568void dev_disable_lro(struct net_device *dev); 2568void dev_disable_lro(struct net_device *dev);
2569int dev_loopback_xmit(struct net *net, struct sock *sk, struct sk_buff *newskb); 2569int dev_loopback_xmit(struct net *net, struct sock *sk, struct sk_buff *newskb);
2570u16 dev_pick_tx_zero(struct net_device *dev, struct sk_buff *skb,
2571 void *accel_priv, select_queue_fallback_t fallback);
2572u16 dev_pick_tx_cpu_id(struct net_device *dev, struct sk_buff *skb,
2573 void *accel_priv, select_queue_fallback_t fallback);
2570int dev_queue_xmit(struct sk_buff *skb); 2574int dev_queue_xmit(struct sk_buff *skb);
2571int dev_queue_xmit_accel(struct sk_buff *skb, struct net_device *sb_dev); 2575int dev_queue_xmit_accel(struct sk_buff *skb, struct net_device *sb_dev);
2572int dev_direct_xmit(struct sk_buff *skb, u16 queue_id); 2576int 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
3620u16 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}
3625EXPORT_SYMBOL(dev_pick_tx_zero);
3626
3627u16 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}
3632EXPORT_SYMBOL(dev_pick_tx_cpu_id);
3633
3620static u16 ___netdev_pick_tx(struct net_device *dev, struct sk_buff *skb, 3634static 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
278static u16 __packet_pick_tx_queue(struct net_device *dev, struct sk_buff *skb) 278static 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
283static u16 packet_pick_tx_queue(struct sk_buff *skb) 283static u16 packet_pick_tx_queue(struct sk_buff *skb)