From 69da5b5275cac711ce0fc1106286e6ab009f2e50 Mon Sep 17 00:00:00 2001 From: Bruce Allan Date: Fri, 13 May 2011 07:19:53 +0000 Subject: [PATCH] --- yaml --- r: 255495 b: refs/heads/master c: c5caf4825b22957e4ad70fd94316e91ce8cfb51c h: refs/heads/master i: 255493: 81d5d7227f9d0c1640b5c5ceefeda3916726c756 255491: fbee6b309cd0a75dc1adc45a03610cc1a75ac885 255487: 208e14c3e5e50bebc8173771005125e44db5feef v: v3 --- [refs] | 2 +- trunk/drivers/net/e1000e/ich8lan.c | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index b41c26970f59..69d5029b9394 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 99730e4c13c8344b02dd96108945b48d28c14c25 +refs/heads/master: c5caf4825b22957e4ad70fd94316e91ce8cfb51c diff --git a/trunk/drivers/net/e1000e/ich8lan.c b/trunk/drivers/net/e1000e/ich8lan.c index dcd5db5e34e5..dddd0b3dd21b 100644 --- a/trunk/drivers/net/e1000e/ich8lan.c +++ b/trunk/drivers/net/e1000e/ich8lan.c @@ -889,8 +889,13 @@ static void e1000_release_swflag_ich8lan(struct e1000_hw *hw) u32 extcnf_ctrl; extcnf_ctrl = er32(EXTCNF_CTRL); - extcnf_ctrl &= ~E1000_EXTCNF_CTRL_SWFLAG; - ew32(EXTCNF_CTRL, extcnf_ctrl); + + if (extcnf_ctrl & E1000_EXTCNF_CTRL_SWFLAG) { + extcnf_ctrl &= ~E1000_EXTCNF_CTRL_SWFLAG; + ew32(EXTCNF_CTRL, extcnf_ctrl); + } else { + e_dbg("Semaphore unexpectedly released by sw/fw/hw\n"); + } mutex_unlock(&swflag_mutex); } @@ -3066,7 +3071,7 @@ static s32 e1000_reset_hw_ich8lan(struct e1000_hw *hw) msleep(20); if (!ret_val) - e1000_release_swflag_ich8lan(hw); + mutex_unlock(&swflag_mutex); if (ctrl & E1000_CTRL_PHY_RST) { ret_val = hw->phy.ops.get_cfg_done(hw);