[lkml]   [2009]   [Apr]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[patch 011/100] x86, setup: mark %esi as clobbered in E820 BIOS call
    -stable review patch.  If anyone has any objections, please let us know.

    From: Michael K. Johnson <>

    upstream commit: 01522df346f846906eaf6ca57148641476209909

    Jordan Hargrave diagnosed a BIOS clobbering %esi in the E820 call.
    That particular BIOS has been fixed, but there is a possibility that
    this is responsible for other occasional reports of early boot
    failure, and it does not hurt to add %esi to the clobbers.

    -stable candidate patch.

    Cc: Justin Forbes <>
    Signed-off-by: Michael K Johnson <>
    Signed-off-by: H. Peter Anvin <>
    Signed-off-by: Chris Wright <>
    arch/x86/boot/memory.c | 7 ++++---
    1 file changed, 4 insertions(+), 3 deletions(-)

    --- a/arch/x86/boot/memory.c
    +++ b/arch/x86/boot/memory.c
    @@ -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

     \ /
      Last update: 2009-04-23 09:35    [W:0.043 / U:79.716 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site