X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=net%2Fcore%2Fdev.c;h=fc2dc933bee5b6053cd0ee8c92646ec1fb143714;hb=e548833df83c3554229eff0672900bfe958b45fd;hp=cdbbea39c549057693a93752edf03ea73e909938;hpb=cbd9da7be869f676afc204e1a664163778c770bd;p=mv-sheeva.git 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, struct sk_buff *skb) { int queue_index; - struct sock *sk = skb->sk; + const struct net_device_ops *ops = dev->netdev_ops; - queue_index = sk_tx_queue_get(sk); - if (queue_index < 0) { - const struct net_device_ops *ops = dev->netdev_ops; + if (ops->ndo_select_queue) { + queue_index = ops->ndo_select_queue(dev, skb); + queue_index = dev_cap_txqueue(dev, queue_index); + } else { + struct sock *sk = skb->sk; + queue_index = sk_tx_queue_get(sk); + if (queue_index < 0) { - if (ops->ndo_select_queue) { - queue_index = ops->ndo_select_queue(dev, skb); - queue_index = dev_cap_txqueue(dev, queue_index); - } else { queue_index = 0; if (dev->real_num_tx_queues > 1) queue_index = skb_tx_hash(dev, skb);