linux-stable/arch/x86/boot
Zach Bobroff d3768d885c x86, efi: retry ExitBootServices() on failure
ExitBootServices is absolutely supposed to return a failure if any
ExitBootServices event handler changes the memory map.  Basically the
get_map loop should run again if ExitBootServices returns an error the
first time.  I would say it would be fair that if ExitBootServices gives
an error the second time then Linux would be fine in returning control
back to BIOS.

The second change is the following line:

again:
        size += sizeof(*mem_map) * 2;

Originally you were incrementing it by the size of one memory map entry.
The issue here is all related to the low_alloc routine you are using.
In this routine you are making allocations to get the memory map itself.
Doing this allocation or allocations can affect the memory map by more
than one record.

[ mfleming - changelog, code style ]
Signed-off-by: Zach Bobroff <zacharyb@ami.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
2013-06-11 07:51:54 +01:00
..
compressed x86, efi: retry ExitBootServices() on failure 2013-06-11 07:51:54 +01:00
tools x86, build: Dynamically find entry points in compressed startup code 2013-01-27 20:19:37 -08:00
.gitignore x86: remove offsets.h from .gitignore and dontdiff 2012-11-19 14:10:53 +01:00
a20.c x86, setup: "glove box" BIOS interrupts in the core boot code 2009-04-09 16:08:11 -07:00
apm.c x86, setup: "glove box" BIOS interrupts in the APM code 2009-04-09 16:08:11 -07:00
bioscall.S x86, boot: use .code16gcc instead of .code16 2009-06-16 17:47:32 -07:00
bitops.h
boot.h x86, boot: Pass cmd_line_ptr with unsigned long instead 2013-01-29 15:26:09 -08:00
cmdline.c x86, boot: Pass cmd_line_ptr with unsigned long instead 2013-01-29 15:26:09 -08:00
code16gcc.h
copy.S
cpu.c
cpucheck.c
ctype.h x86, setup: move isdigit.h to ctype.h, header files on top. 2010-08-02 21:07:20 -07:00
early_serial_console.c x86, setup: Fix earlyprintk=serial,0x3f8,115200 2010-09-21 10:18:33 -07:00
edd.c x86, setup: "glove box" BIOS interrupts in the EDD code 2009-04-09 16:08:11 -07:00
header.S x86, boot: Support loading bzImage, boot_params and ramdisk above 4G 2013-01-29 19:32:33 -08:00
install.sh kbuild: use INSTALLKERNEL to select customized installkernel script 2009-09-20 12:18:14 +02:00
main.c keyboard: Use BIOS Keyboard variable to set Numlock 2012-05-08 14:19:41 -07:00
Makefile x86, build: Dynamically find entry points in compressed startup code 2013-01-27 20:19:37 -08:00
mca.c x86, setup: "glove box" BIOS interrupts in the MCA code 2009-04-09 16:08:11 -07:00
memory.c x86, setup: When probing memory with e801, use ax/bx as a pair 2011-04-25 14:52:37 -07:00
mkcpustr.c UAPI: Partition the header include path sets and add uapi/ header directories 2012-10-02 18:01:26 +01:00
mtools.conf.in
pm.c x86: remove zImage support 2009-03-11 11:00:00 -07:00
pmjump.S x86, setup: move 32-bit code to .text32 2009-03-17 15:26:06 -07:00
printf.c x86, setup: reorganize the early console setup 2010-08-02 15:51:56 -07:00
regs.c x86, setup: "glove box" BIOS calls -- infrastructure 2009-04-09 16:08:11 -07:00
setup.ld x86, boot: Define the 2.12 bzImage boot protocol 2013-01-27 15:56:37 -08:00
string.c x86, efi: EFI boot stub support 2011-12-12 14:26:10 -08:00
tty.c x86, setup: reorganize the early console setup 2010-08-02 15:51:56 -07:00
version.c kbuild: move utsrelease.h to include/generated 2009-12-12 13:08:15 +01:00
vesa.h
video-bios.c x86: fix usage of bios intcall() 2009-07-04 12:56:32 -07:00
video-mode.c
video-vesa.c Merge branch 'x86-setup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-14 08:01:47 -07:00
video-vga.c x86, setup: Set ax register in boot vga query 2010-06-10 15:24:29 -07:00
video.c x86, setup: When restoring the screen, update boot_params.screen_info 2010-02-17 18:32:06 -08:00
video.h x86, setup: remove obsolete pre-Kconfig CONFIG_VIDEO_ variables 2009-06-26 11:02:31 -07:00