summaryrefslogtreecommitdiff
path: root/drivers/acpi/sbshc.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-09-11 13:13:58 +0400
committerIngo Molnar <mingo@elte.hu>2008-09-11 13:13:58 +0400
commit6ef62164e794c480259ac158aa6c8c7b85746545 (patch)
treec4540211d0cef9c88d96f30f89ac4b9c1a570683 /drivers/acpi/sbshc.c
parente75b986af7881ed8d8ccb1ed154045ed17cfebd0 (diff)
parentadee14b2e1557d0a8559f29681732d05a89dfc35 (diff)
downloadlinux-6ef62164e794c480259ac158aa6c8c7b85746545.tar.xz
Merge commit 'v2.6.27-rc6' into timers/urgent
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 bcf2c70fca87..a4e3767b8c64 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;
}