mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-05 08:48:53 +00:00
1a51502bdd
"cat /proc/net/dev" uses RCU protection only. Its quite possible we call a driver get_stats() method while device is dismantling and freeing its data structures. So get_stats() methods must be very careful not accessing driver private data without appropriate locking. In ixgbe case, we access rx_ring pointers. These pointers are freed in ixgbe_clear_interrupt_scheme() and set to NULL, this can trigger NULL dereference in ixgbe_get_stats64() A possible fix is to use RCU locking in ixgbe_get_stats64() and defer rx_ring freeing after a grace period in ixgbe_clear_interrupt_scheme() Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Reported-by: Tantilov, Emil S <emil.s.tantilov@intel.com> Tested-by: Ross Brattain <ross.b.brattain@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> |
||
---|---|---|
.. | ||
ixgbe_82598.c | ||
ixgbe_82599.c | ||
ixgbe_common.c | ||
ixgbe_common.h | ||
ixgbe_dcb_82598.c | ||
ixgbe_dcb_82598.h | ||
ixgbe_dcb_82599.c | ||
ixgbe_dcb_82599.h | ||
ixgbe_dcb_nl.c | ||
ixgbe_dcb.c | ||
ixgbe_dcb.h | ||
ixgbe_ethtool.c | ||
ixgbe_fcoe.c | ||
ixgbe_fcoe.h | ||
ixgbe_main.c | ||
ixgbe_mbx.c | ||
ixgbe_mbx.h | ||
ixgbe_phy.c | ||
ixgbe_phy.h | ||
ixgbe_sriov.c | ||
ixgbe_sriov.h | ||
ixgbe_type.h | ||
ixgbe.h | ||
Makefile |