Files
linux/drivers
Eric Dumazet 1a51502bdd ixgbe: delay rx_ring freeing
"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>
2010-11-16 19:26:42 -08:00
..
…
…
…
…
2010-10-29 00:29:51 +02:00
…
2010-11-11 10:29:40 -08:00
…
2010-11-10 14:40:53 +01:00
2010-10-30 08:31:35 -07:00
2010-11-16 19:26:42 -08:00
…
2010-11-08 11:41:15 -05:00
…
…
2010-11-12 07:55:30 -08:00
…
2010-11-10 14:54:09 +01:00
…
…
…
2010-11-11 11:06:09 -08:00
…
…