summaryrefslogtreecommitdiffstats
path: root/drivers/acpi/sbshc.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-10-12 15:17:14 +0200
committerIngo Molnar <mingo@elte.hu>2008-10-12 15:17:14 +0200
commit620f2efcdc5c7a2db68da41bc3df3cf9a718024e (patch)
treeb1a0411e2588953777d0b10245b12044c33cef54 /drivers/acpi/sbshc.c
parent04944b793e18ece23f63c0252646b310c1845940 (diff)
parentfd048088306656824958e7783ffcee27e241b361 (diff)
Merge branch 'linus' into x86/xsave
Diffstat (limited to 'drivers/acpi/sbshc.c')
-rw-r--r--drivers/acpi/sbshc.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c
index bcf2c70fca8..a4e3767b8c6 100644
--- a/drivers/acpi/sbshc.c
+++ b/drivers/acpi/sbshc.c
@@ -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),
msecs_to_jiffies(timeout)))
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
return -ETIME;
}