[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 8be3f56..eab50c5 100644
--- a/arch/i386/boot/apm.c
+++ b/arch/i386/boot/apm.c
@@ -45,9 +45,10 @@
/* 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;