[patch 13/14] ACPI: Correctly recover from a failed S3 attempt

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: William Morrrow <william.morrow@xxxxxxx>

This was discovered on a broken BIOS that simply returned from its suspend
procedure, appearing to the OS as a failed S3 attempt.

It is possible to invoke the protected mode register restore routine (which
would normally restore the sysenter registers) when the bios returns from
S3.  This has no effect on a correctly running system and repairs the
damage from broken BIOS.

Signed-off-by: William Morrow <william.morrow@xxxxxxx>
Signed-off-by: Jordan Crouse <jordan.crouse@xxxxxxx>
Cc: "Yu, Luming" <luming.yu@xxxxxxxxx>
Cc: "Brown, Len" <len.brown@xxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

 arch/i386/kernel/acpi/wakeup.S |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff -puN arch/i386/kernel/acpi/wakeup.S~acpi-correctly-recover-from-a-failed-s3-attempt arch/i386/kernel/acpi/wakeup.S
--- a/arch/i386/kernel/acpi/wakeup.S~acpi-correctly-recover-from-a-failed-s3-attempt
+++ a/arch/i386/kernel/acpi/wakeup.S
@@ -292,7 +292,10 @@ ENTRY(do_suspend_lowlevel)
 	pushl	$3
 	call	acpi_enter_sleep_state
 	addl	$4, %esp
-	ret
+
+#	In case of S3 failure, we'll emerge here.  Jump
+# 	to ret_point to recover
+	jmp	ret_point
 	.p2align 4,,7
 ret_point:
 	call	restore_registers
_
-
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux