summaryrefslogtreecommitdiff
path: root/arch/i386/boot/apm.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/i386/boot/apm.c')
-rw-r--r--arch/i386/boot/apm.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/i386/boot/apm.c b/arch/i386/boot/apm.c
index a34087c..eab50c5 100644
--- a/arch/i386/boot/apm.c
+++ b/arch/i386/boot/apm.c
@@ -40,14 +40,15 @@ int query_apm_bios(void)
if (bx != 0x504d) /* "PM" signature */
return -1;
- if (cx & 0x02) /* 32 bits supported? */
+ if (!(cx & 0x02)) /* 32 bits supported? */
return -1;
/* 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;