diff options
Diffstat (limited to 'net/core/dev.c')
-rw-r--r-- | net/core/dev.c | 16 |
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); |