From: H. Peter Anvin <hpa@zytor.com>
Date: Mon, 23 Jul 2007 22:37:14 +0000 (-0700)
Subject: [x86 setup] APM: BX should be zero when disconnecting
X-Git-Tag: MMI-PSA29.97-13-9~41144
X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=1a13286b104faeeb4f4bc3bfbf4d4fcdcd2569ed;p=GitHub%2FMotorolaMobilityLLC%2Fkernel-slsi.git

[x86 setup] APM: BX should be zero when disconnecting

For APM calls, BX contains the device index, which is zero for
the system BIOS.  Disconnect requres BX = 0.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
---

diff --git a/arch/i386/boot/apm.c b/arch/i386/boot/apm.c
index 8be3f5686af6..eab50c55a3a5 100644
--- a/arch/i386/boot/apm.c
+++ b/arch/i386/boot/apm.c
@@ -45,9 +45,10 @@ int query_apm_bios(void)
 
 	/* Disconnect first, just in case */
 	ax = 0x5304;
+	bx = 0;
 	asm volatile("pushl %%ebp ; int $0x15 ; popl %%ebp"
-		     : "+a" (ax)
-		     : : "ebx", "ecx", "edx", "esi", "edi");
+		     : "+a" (ax), "+b" (bx)
+		     : : "ecx", "edx", "esi", "edi");
 
 	/* Paranoia */
 	ebx = esi = 0;