tun, rfs: fix the incorrect hash value
The code incorrectly save the queue index as the hash, so this patch is fixing it with the hash received in the stack receive path. Signed-off-by: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com> Acked-by: Jason Wang <jasowang@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
56022a8fdd
Коммит
fbe4d4565b
|
@ -378,8 +378,8 @@ static u16 tun_select_queue(struct net_device *dev, struct sk_buff *skb)
|
||||||
if (txq) {
|
if (txq) {
|
||||||
e = tun_flow_find(&tun->flows[tun_hashfn(txq)], txq);
|
e = tun_flow_find(&tun->flows[tun_hashfn(txq)], txq);
|
||||||
if (e) {
|
if (e) {
|
||||||
txq = e->queue_index;
|
|
||||||
tun_flow_save_rps_rxhash(e, txq);
|
tun_flow_save_rps_rxhash(e, txq);
|
||||||
|
txq = e->queue_index;
|
||||||
} else
|
} else
|
||||||
/* use multiply and shift instead of expensive divide */
|
/* use multiply and shift instead of expensive divide */
|
||||||
txq = ((u64)txq * numqueues) >> 32;
|
txq = ((u64)txq * numqueues) >> 32;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче