aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/boot/memory.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/boot/memory.c')
-rw-r--r--arch/x86/boot/memory.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/x86/boot/memory.c b/arch/x86/boot/memory.c
index 8c3c25f35578..a99dbbe77a0c 100644
--- a/arch/x86/boot/memory.c
+++ b/arch/x86/boot/memory.c
@@ -27,13 +27,14 @@ static int detect_memory_e820(void)
27 do { 27 do {
28 size = sizeof(struct e820entry); 28 size = sizeof(struct e820entry);
29 29
30 /* Important: %edx is clobbered by some BIOSes, 30 /* Important: %edx and %esi are clobbered by some BIOSes,
31 so it must be either used for the error output 31 so they must be either used for the error output
32 or explicitly marked clobbered. */ 32 or explicitly marked clobbered. */
33 asm("int $0x15; setc %0" 33 asm("int $0x15; setc %0"
34 : "=d" (err), "+b" (next), "=a" (id), "+c" (size), 34 : "=d" (err), "+b" (next), "=a" (id), "+c" (size),
35 "=m" (*desc) 35 "=m" (*desc)
36 : "D" (desc), "d" (SMAP), "a" (0xe820)); 36 : "D" (desc), "d" (SMAP), "a" (0xe820)
37 : "esi");
37 38
38 /* BIOSes which terminate the chain with CF = 1 as opposed 39 /* BIOSes which terminate the chain with CF = 1 as opposed
39 to %ebx = 0 don't always report the SMAP signature on 40 to %ebx = 0 don't always report the SMAP signature on