Commit 266feefe authored by Zhao Yakui's avatar Zhao Yakui Committed by Andi Kleen

ACPI: Avoid bogus timeout about SMbus check

In the function of wait_transaction_complete when the timeout happens,
OS will try to check the status of SMbus again. If the status is what OS
expected, it will be regarded as the bogus timeout. Otherwise it will be
treated as ETIME.

http://bugzilla.kernel.org/show_bug.cgi?id=10483Signed-off-by: default avatarZhao Yakui <yakui.zhao@intel.com>
tested-by    : Oldřich Jedlička < <oldium.pro@seznam.cz>
Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
parent b635acec
...@@ -107,6 +107,13 @@ static int wait_transaction_complete(struct acpi_smb_hc *hc, int timeout) ...@@ -107,6 +107,13 @@ static int wait_transaction_complete(struct acpi_smb_hc *hc, int timeout)
if (wait_event_timeout(hc->wait, smb_check_done(hc), if (wait_event_timeout(hc->wait, smb_check_done(hc),
msecs_to_jiffies(timeout))) msecs_to_jiffies(timeout)))
return 0; return 0;
/*
* After the timeout happens, OS will try to check the status of SMbus.
* If the status is what OS expected, it will be regarded as the bogus
* timeout.
*/
if (smb_check_done(hc))
return 0;
else else
return -ETIME; return -ETIME;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment