]> git.baikalelectronics.ru Git - kernel.git/commit
e1000: fix virtualization bug
authorJesse Brandeburg <jesse.brandeburg@intel.com>
Mon, 4 May 2009 11:19:42 +0000 (11:19 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 5 May 2009 04:28:13 +0000 (21:28 -0700)
commit451cdf142ab94be7d3157764edbcf138208f64c9
tree32362bffe010306c755c188d13603db83d03b4c6
parent3b32d80b6ba4ff7234cdefca97b9bad8af71174d
e1000: fix virtualization bug

a recent fix to e1000 (commit 427c8814) 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>
drivers/net/e1000/e1000_main.c