mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
efi: introduce efi_arch_flush_dcache_area
Objects loaded by FileHandle->Read need to be flushed from dcache,
otherwise copy_from_paddr will read stale data when copying the kernel,
causing a failure to boot.
Introduce efi_arch_flush_dcache_area and call it from read_file.
This commit introduces no functional changes on x86.
Reported-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Release-acked-by: Wei Liu <wei.liu2@citrix.com>
master commit: 0d6a3c7553
master date: 2015-09-09 15:29:06 +0200
This commit is contained in:
1 parent
5af5c1ad4c
commit
e7e711e49e
3 files changed
+11
No files matched your search
@@ -9,6 +9,7 @@
|
||||
#include <asm/smp.h>
|
||||
|
||||
void noreturn efi_xen_start(void *fdt_ptr, uint32_t fdt_size);
|
||||
void __flush_dcache_area(const void *vaddr, unsigned long size);
|
||||
|
||||
#define DEVICE_TREE_GUID \
|
||||
{0xb1b621d5, 0xf19c, 0x41a5, {0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0}}
|
||||
@@ -571,6 +572,12 @@ static void __init efi_arch_video_init(EFI_GRAPHICS_OUTPUT_PROTOCOL *gop,
|
||||
EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *mode_info)
|
||||
{
|
||||
}
|
||||
|
||||
static void efi_arch_flush_dcache_area(const void *vaddr, UINTN size)
|
||||
{
|
||||
__flush_dcache_area(vaddr, size);
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* mode: C
|
||||
|
||||
@@ -640,6 +640,8 @@ static bool_t __init efi_arch_use_config_file(EFI_SYSTEM_TABLE *SystemTable)
|
||||
return 1; /* x86 always uses a config file */
|
||||
}
|
||||
|
||||
static void efi_arch_flush_dcache_area(const void *vaddr, UINTN size) { }
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* mode: C
|
||||
|
||||
@@ -528,6 +528,8 @@ static bool_t __init read_file(EFI_FILE_HANDLE dir_handle, CHAR16 *name,
|
||||
PrintErrMesg(name, ret);
|
||||
}
|
||||
|
||||
efi_arch_flush_dcache_area(file->ptr, file->size);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||