aboutsummaryrefslogtreecommitdiffstats
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 a34087c370c0..eab50c55a3a5 100644
--- a/arch/i386/boot/apm.c
+++ b/arch/i386/boot/apm.c
@@ -40,14 +40,15 @@ int query_apm_bios(void)
40 if (bx != 0x504d) /* "PM" signature */ 40 if (bx != 0x504d) /* "PM" signature */
41 return -1; 41 return -1;
42 42
43 if (cx & 0x02) /* 32 bits supported? */ 43 if (!(cx & 0x02)) /* 32 bits supported? */
44 return -1; 44 return -1;
45 45
46 /* Disconnect first, just in case */ 46 /* Disconnect first, just in case */
47 ax = 0x5304; 47 ax = 0x5304;
48 bx = 0;
48 asm volatile("pushl %%ebp ; int $0x15 ; popl %%ebp" 49 asm volatile("pushl %%ebp ; int $0x15 ; popl %%ebp"
49 : "+a" (ax) 50 : "+a" (ax), "+b" (bx)
50 : : "ebx", "ecx", "edx", "esi", "edi"); 51 : : "ecx", "edx", "esi", "edi");
51 52
52 /* Paranoia */ 53 /* Paranoia */
53 ebx = esi = 0; 54 ebx = esi = 0;