|
@@ -346,14 +346,9 @@ u16 __netdev_pick_tx(struct net_device *dev, struct sk_buff *skb)
|
|
|
if (new_index < 0)
|
|
|
new_index = skb_tx_hash(dev, skb);
|
|
|
|
|
|
- if (queue_index != new_index && sk) {
|
|
|
- struct dst_entry *dst =
|
|
|
- rcu_dereference_check(sk->sk_dst_cache, 1);
|
|
|
-
|
|
|
- if (dst && skb_dst(skb) == dst)
|
|
|
- sk_tx_queue_set(sk, queue_index);
|
|
|
-
|
|
|
- }
|
|
|
+ if (queue_index != new_index && sk &&
|
|
|
+ rcu_access_pointer(sk->sk_dst_cache))
|
|
|
+ sk_tx_queue_set(sk, queue_index);
|
|
|
|
|
|
queue_index = new_index;
|
|
|
}
|