Messages in this thread Patch in this message | | | From | Alexey Khoroshilov <> | Subject | [PATCH] e1000e: fix mismatch in mutex lock-unlock in e1000_reset_hw_82571() | Date | Thu, 18 Apr 2013 22:15:18 -0700 |
| |
If e1000_get_hw_semaphore_82574() succeed, it acquires swflag_mutex, otherwise it does not. But the returned value of e1000_get_hw_semaphore_82574() is ignored, so unlocking of swflag_mutex happens anyway.
The patch fixes the issue by breaking reset if MIC ownership is not acquired.
Found by Linux Driver Verification project (linuxtesting.org).
Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> --- drivers/net/ethernet/intel/e1000e/82571.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/intel/e1000e/82571.c b/drivers/net/ethernet/intel/e1000e/82571.c index 2faffbd..a6bd80e 100644 --- a/drivers/net/ethernet/intel/e1000e/82571.c +++ b/drivers/net/ethernet/intel/e1000e/82571.c @@ -1003,8 +1003,10 @@ static s32 e1000_reset_hw_82571(struct e1000_hw *hw) default: break; } - if (ret_val) + if (ret_val) { e_dbg("Cannot acquire MDIO ownership\n"); + return ret_val; + } ctrl = er32(CTRL); -- 1.7.9.5
| |