]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
e1000: fix virtualization bug
authorJesse Brandeburg <jesse.brandeburg@intel.com>
Tue, 12 May 2009 17:34:21 +0000 (10:34 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 18 May 2009 23:34:39 +0000 (16:34 -0700)
commitf49a3bae0a3b457caf6bb77bb4334e15c1a1ff93
treef2c467619ebf73fe1558446e4c4c5a859d06cde5
parent2f145d234bfa88a6b373cc4f6d96aa35770a1fba
e1000: fix virtualization bug

[STABLE] backport upstream commit e151a60ad1faffb6241cf7eb6846353df1f33a32

a recent fix to e1000 (commit 15b2bee2) caused KVM/QEMU/VMware based
virtualized e1000 interfaces to begin failing when resetting.

This is because the driver in a virtual environment doesn't
get to run instructions *AT ALL* when an interrupt is asserted.
The interrupt code runs immediately and this recent bug fix
allows an interrupt to be possible when the interrupt handler
will reject it (due to the new code), when being called from
any path in the driver that holds the E1000_RESETTING flag.

the driver should use the __E1000_DOWN flag instead of the
__E1000_RESETTING flag to prevent interrupt execution
while reconfiguring the hardware.

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/net/e1000/e1000_main.c