Message ID | 1366348518-5594-1-git-send-email-khoroshilov@ispras.ru |
---|---|
State | Awaiting Upstream, archived |
Delegated to: | David Miller |
Headers | show |
On Thu, 2013-04-18 at 22:15 -0700, Alexey Khoroshilov wrote: > 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(-) Thanks Alexey, I have added your patch to my queue.
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);
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(-)