diff options
| author | Eric Dumazet <[email protected]> | 2010-11-16 19:26:42 -0800 |
|---|---|---|
| committer | Jeff Kirsher <[email protected]> | 2010-11-16 19:26:42 -0800 |
| commit | 1a51502bddca7ac1e921d918b741ffd2bec149ed (patch) | |
| tree | ee41f3f5fdba243eb2e68b0fd8ee4c8c84d72c2b /tools/perf/scripts/python | |
| parent | b178bb3dfc30d9555bdd2401e95af98e23e83e10 (diff) | |
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 <[email protected]>
Reported-by: Tantilov, Emil S <[email protected]>
Tested-by: Ross Brattain <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions