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 2308cce48048..561ee3a86525 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
| @@ -2062,16 +2062,16 @@ static struct netdev_queue *dev_pick_tx(struct net_device *dev, | |||
| 2062 | struct sk_buff *skb) | 2062 | struct sk_buff *skb) |
| 2063 | { | 2063 | { |
| 2064 | int queue_index; | 2064 | int queue_index; |
| 2065 | struct sock *sk = skb->sk; | 2065 | const struct net_device_ops *ops = dev->netdev_ops; |
| 2066 | 2066 | ||
| 2067 | queue_index = sk_tx_queue_get(sk); | 2067 | if (ops->ndo_select_queue) { |
| 2068 | if (queue_index < 0) { | 2068 | queue_index = ops->ndo_select_queue(dev, skb); |
| 2069 | const struct net_device_ops *ops = dev->netdev_ops; | 2069 | queue_index = dev_cap_txqueue(dev, queue_index); |
| 2070 | } else { | ||
| 2071 | struct sock *sk = skb->sk; | ||
| 2072 | queue_index = sk_tx_queue_get(sk); | ||
| 2073 | if (queue_index < 0) { | ||
| 2070 | 2074 | ||
| 2071 | if (ops->ndo_select_queue) { | ||
| 2072 | queue_index = ops->ndo_select_queue(dev, skb); | ||
| 2073 | queue_index = dev_cap_txqueue(dev, queue_index); | ||
| 2074 | } else { | ||
| 2075 | queue_index = 0; | 2075 | queue_index = 0; |
| 2076 | if (dev->real_num_tx_queues > 1) | 2076 | if (dev->real_num_tx_queues > 1) |
| 2077 | queue_index = skb_tx_hash(dev, skb); | 2077 | queue_index = skb_tx_hash(dev, skb); |
