x86, setup: mark %esi as clobbered in E820 BIOS call
[safe/jmp/linux-2.6] / arch / x86 / boot / memory.c
index 8c3c25f..a99dbbe 100644 (file)
@@ -27,13 +27,14 @@ static int detect_memory_e820(void)
        do {
                size = sizeof(struct e820entry);
 
-               /* Important: %edx is clobbered by some BIOSes,
-                  so it must be either used for the error output
+               /* Important: %edx and %esi are clobbered by some BIOSes,
+                  so they must be either used for the error output
                   or explicitly marked clobbered. */
                asm("int $0x15; setc %0"
                    : "=d" (err), "+b" (next), "=a" (id), "+c" (size),
                      "=m" (*desc)
-                   : "D" (desc), "d" (SMAP), "a" (0xe820));
+                   : "D" (desc), "d" (SMAP), "a" (0xe820)
+                   : "esi");
 
                /* BIOSes which terminate the chain with CF = 1 as opposed
                   to %ebx = 0 don't always report the SMAP signature on