diff options
author | Wu Fengguang <fengguang.wu@intel.com> | 2009-04-14 21:53:48 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-04-14 21:53:48 -0700 |
commit | 95615d90a321349709c80091f2a9cb284757ff0d (patch) | |
tree | 32c338118b4d267a6a7d764424989283189144e0 /drivers/net | |
parent | 6fd4777a1fec1f7757b5a302ad3fdcc1eae2abba (diff) | |
download | op-kernel-dev-95615d90a321349709c80091f2a9cb284757ff0d.zip op-kernel-dev-95615d90a321349709c80091f2a9cb284757ff0d.tar.gz |
ixgbe: fix tx queue index
Don't do the num_tx_queues based masking on calculating tx queue
index.
1) num_tx_queues is not always power-of-2, because it also depends on
the online cpu numbers. So the masking could be a performance bug
on a 6 cpu system.
2) queue_mapping will be limited by real_num_tx_queues=num_tx_queues
in the generic netdev function set_cur_queue_map(). So the bound
limiting here is not necessary.
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/ixgbe/ixgbe_main.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c index 9ef128a..862dd34 100644 --- a/drivers/net/ixgbe/ixgbe_main.c +++ b/drivers/net/ixgbe/ixgbe_main.c @@ -4342,7 +4342,7 @@ static int ixgbe_xmit_frame(struct sk_buff *skb, struct net_device *netdev) int count = 0; unsigned int f; - r_idx = (adapter->num_tx_queues - 1) & skb->queue_mapping; + r_idx = skb->queue_mapping; tx_ring = &adapter->tx_ring[r_idx]; if (adapter->vlgrp && vlan_tx_tag_present(skb)) { |