linux/drivers/net/ethernet/intel
Toshiaki Makita c0a06ee185 igb: Fix oops on changing number of rings
When changing the number of rings by ethtool -L, q_vectors are reused,
which causes oops because of uninitialized pointers.

- When an rx is reused as a tx, q_vector->rx.ring is not set to NULL, which
  misleads igb_poll() to determine that it has an rx ring although it
  actually points to the tx ring.
- When a tx is reused as an rx, q_vector->rx.ring->skb
  (q_vector->ring[0].skb) has a value that was used as tx_stats before.

Fix these problems by zeroing it out on reuseing it.

Fixes: 02ef6e1d0b ("igb: Fix queue allocation method to accommodate changing during runtime")
Signed-off-by: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2015-05-07 05:08:32 -07:00
..
e1000 e1000, e1000e: Use dma_rmb instead of rmb for descriptor read ordering 2015-04-08 12:15:14 -04:00
e1000e e1000e: Move pm_qos_req to e1000e adapter 2015-04-13 13:15:14 -04:00
fm10k fm10k: Do not assume budget will never be 0 for NAPI 2015-05-04 00:06:55 -04:00
i40e bridge/nl: remove wrong use of NLM_F_MULTI 2015-04-29 14:59:16 -04:00
i40evf i40e/i40evf: Save WR_CSR_PROT field from DEV/FUNC capabilities 2015-04-14 20:25:45 -07:00
igb igb: Fix oops on changing number of rings 2015-05-07 05:08:32 -07:00
igbvf igbvf: use netif_carrier_off earlier when bringing if down 2015-03-20 17:45:12 -07:00
ixgb ixgb: call netif_carrier_off early on down 2015-03-20 17:41:52 -07:00
ixgbe bridge/nl: remove wrong use of NLM_F_MULTI 2015-04-29 14:59:16 -04:00
ixgbevf ixgbevf: Use dev_kfree_skb_any in xmit path, not dev_kfree_skb 2015-05-04 00:06:55 -04:00
e100.c e100: Use dma_rmb/wmb where appropriate 2015-04-09 14:25:26 -04:00
Kconfig i40e: Strip configfs code 2015-03-07 07:01:06 -08:00
Makefile fm10k: Add skeletal frame for Intel(R) FM10000 Ethernet Switch Host Interface Driver 2014-09-23 03:59:13 -07:00