summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Allan <bruce.w.allan@intel.com>2008-09-24 02:46:38 +0400
committerJeff Garzik <jgarzik@redhat.com>2008-09-25 04:48:51 +0400
commit2e2e8d53c3f34684af7a7475098b7524a6b854c2 (patch)
tree95c0ed1409fab405b0c0e1219825123f8864ac15
parent4b75a442d2affb2ed20422054b1c640bd3b9c36a (diff)
downloadlinux-2e2e8d53c3f34684af7a7475098b7524a6b854c2.tar.xz
e1000e: remove failed request for sw/fw/hw flag
When the driver fails to acquire the control flag used to serialize NVM and PHY accesses between the driver, firmware and hardware, remove the request for the flag otherwise the hardware might grant the flag when it becomes available but the driver will not release the flag. This could cause the firmware to prevent the driver getting the flag for all future attempts. Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
-rw-r--r--drivers/net/e1000e/ich8lan.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/e1000e/ich8lan.c b/drivers/net/e1000e/ich8lan.c
index 019b9c0bcdcb..692251b60915 100644
--- a/drivers/net/e1000e/ich8lan.c
+++ b/drivers/net/e1000e/ich8lan.c
@@ -398,6 +398,8 @@ static s32 e1000_acquire_swflag_ich8lan(struct e1000_hw *hw)
if (!timeout) {
hw_dbg(hw, "FW or HW has locked the resource for too long.\n");
+ extcnf_ctrl &= ~E1000_EXTCNF_CTRL_SWFLAG;
+ ew32(EXTCNF_CTRL, extcnf_ctrl);
return -E1000_ERR_CONFIG;
}