aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/dev.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/core/dev.c')
-rw-r--r--net/core/dev.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index cdbbea39c54..fc2dc933bee 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -2056,16 +2056,16 @@ static struct netdev_queue *dev_pick_tx(struct net_device *dev,
2056 struct sk_buff *skb) 2056 struct sk_buff *skb)
2057{ 2057{
2058 int queue_index; 2058 int queue_index;
2059 struct sock *sk = skb->sk; 2059 const struct net_device_ops *ops = dev->netdev_ops;
2060 2060
2061 queue_index = sk_tx_queue_get(sk); 2061 if (ops->ndo_select_queue) {
2062 if (queue_index < 0) { 2062 queue_index = ops->ndo_select_queue(dev, skb);
2063 const struct net_device_ops *ops = dev->netdev_ops; 2063 queue_index = dev_cap_txqueue(dev, queue_index);
2064 } else {
2065 struct sock *sk = skb->sk;
2066 queue_index = sk_tx_queue_get(sk);
2067 if (queue_index < 0) {
2064 2068
2065 if (ops->ndo_select_queue) {
2066 queue_index = ops->ndo_select_queue(dev, skb);
2067 queue_index = dev_cap_txqueue(dev, queue_index);
2068 } else {
2069 queue_index = 0; 2069 queue_index = 0;
2070 if (dev->real_num_tx_queues > 1) 2070 if (dev->real_num_tx_queues > 1)
2071 queue_index = skb_tx_hash(dev, skb); 2071 queue_index = skb_tx_hash(dev, skb);