forcedeth: fix race when unloading module
When forcedeth module is unloaded, there exists a path that can lead to mod_timer() after del_timer_sync(), causing an oops. This patch short-circuits this unneeded path, which originates in nv_get_ethtool_stats(). Tested: x86_64 16-way + 3 ethtool -S infinite loops + 100Mbps incoming traffic + rmmod/modprobe/ifconfig in a loop Initial-Author: Salman Qazi <sqazi@google.com> Discussion: http://patchwork.ozlabs.org/patch/123548/ Signed-off-by: David Decotigny <david.decotigny@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
dd1294c4ed
commit
f9c4082df5
|
@ -4566,7 +4566,7 @@ static void nv_get_ethtool_stats(struct net_device *dev, struct ethtool_stats *e
|
|||
struct fe_priv *np = netdev_priv(dev);
|
||||
|
||||
/* update stats */
|
||||
nv_do_stats_poll((unsigned long)dev);
|
||||
nv_get_hw_stats(dev);
|
||||
|
||||
memcpy(buffer, &np->estats, nv_get_sset_count(dev, ETH_SS_STATS)*sizeof(u64));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue