From 28708aadaf452d1434dbeb88b2230be0da92d27f Mon Sep 17 00:00:00 2001 From: Eric Dumazet Date: Fri, 1 May 2009 09:05:06 -0700 Subject: [PATCH] --- yaml --- r: 144582 b: refs/heads/master c: ec581f6a42bbbea5271c66da9769a41b46c74e10 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/core/dev.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index c0d3a7ecfc85..12a5708e5069 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7a67e56fd362d3edfde1f19170893508c3940d3a +refs/heads/master: ec581f6a42bbbea5271c66da9769a41b46c74e10 diff --git a/trunk/net/core/dev.c b/trunk/net/core/dev.c index 308a7d0c277f..e2e9e4af3ace 100644 --- a/trunk/net/core/dev.c +++ b/trunk/net/core/dev.c @@ -1735,11 +1735,12 @@ u16 skb_tx_hash(const struct net_device *dev, const struct sk_buff *skb) { u32 hash; - if (skb_rx_queue_recorded(skb)) { - hash = skb_get_rx_queue(skb); - } else if (skb->sk && skb->sk->sk_hash) { + if (skb_rx_queue_recorded(skb)) + return skb_get_rx_queue(skb) % dev->real_num_tx_queues; + + if (skb->sk && skb->sk->sk_hash) hash = skb->sk->sk_hash; - } else + else hash = skb->protocol; hash = jhash_1word(hash, skb_tx_hashrnd);