tun.c (3c3d7cb1db4af176dab843f22ea092a4ef1eb989) tun.c (99932d4fc03a13bb3e94938fe25458fabc8f2fc3)
1/*
2 * TUN - Universal TUN/TAP device driver.
3 * Copyright (C) 1999-2002 Maxim Krasnyansky <maxk@qualcomm.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.

--- 352 unchanged lines hidden (view full) ---

361/* We try to identify a flow through its rxhash first. The reason that
362 * we do not check rxq no. is because some cards(e.g 82599), chooses
363 * the rxq based on the txq where the last packet of the flow comes. As
364 * the userspace application move between processors, we may get a
365 * different rxq no. here. If we could not get rxhash, then we would
366 * hope the rxq no. may help here.
367 */
368static u16 tun_select_queue(struct net_device *dev, struct sk_buff *skb,
1/*
2 * TUN - Universal TUN/TAP device driver.
3 * Copyright (C) 1999-2002 Maxim Krasnyansky <maxk@qualcomm.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.

--- 352 unchanged lines hidden (view full) ---

361/* We try to identify a flow through its rxhash first. The reason that
362 * we do not check rxq no. is because some cards(e.g 82599), chooses
363 * the rxq based on the txq where the last packet of the flow comes. As
364 * the userspace application move between processors, we may get a
365 * different rxq no. here. If we could not get rxhash, then we would
366 * hope the rxq no. may help here.
367 */
368static u16 tun_select_queue(struct net_device *dev, struct sk_buff *skb,
369 void *accel_priv)
369 void *accel_priv, select_queue_fallback_t fallback)
370{
371 struct tun_struct *tun = netdev_priv(dev);
372 struct tun_flow_entry *e;
373 u32 txq = 0;
374 u32 numqueues = 0;
375
376 rcu_read_lock();
377 numqueues = ACCESS_ONCE(tun->numqueues);

--- 2018 unchanged lines hidden ---
370{
371 struct tun_struct *tun = netdev_priv(dev);
372 struct tun_flow_entry *e;
373 u32 txq = 0;
374 u32 numqueues = 0;
375
376 rcu_read_lock();
377 numqueues = ACCESS_ONCE(tun->numqueues);

--- 2018 unchanged lines hidden ---