The efi_info structure stores low 32 bits of memory map in efi_memmap and high 32 bits in efi_memmap_hi. While constructing pointer in the setup_e820(), need to take into account all 64 bit of the pointer. It is because on 64bit machine the function efi_get_memory_map() may return full 64bit pointer and before the patch that pointer was truncated. The issue is triggered on Parallles virtual machine and fixed with this patch. Signed-off-by: Dmitry Skorodumov <sdmitry@parallels.com> Cc: Denis V. Lunev <den@openvz.org> Cc: <stable@vger.kernel.org> Signed-off-by: Matt Fleming <matt.fleming@intel.com> |
||
---|---|---|
.. | ||
.gitignore | ||
aslr.c | ||
cmdline.c | ||
cpuflags.c | ||
early_serial_console.c | ||
eboot.c | ||
eboot.h | ||
efi_stub_32.S | ||
efi_stub_64.S | ||
efi_thunk_64.S | ||
head_32.S | ||
head_64.S | ||
Makefile | ||
misc.c | ||
misc.h | ||
mkpiggy.c | ||
string.c | ||
vmlinux.lds.S |