aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/platform/efi/efi-bgrt.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/platform/efi/efi-bgrt.c')
-rw-r--r--arch/x86/platform/efi/efi-bgrt.c13
1 files changed, 2 insertions, 11 deletions
diff --git a/arch/x86/platform/efi/efi-bgrt.c b/arch/x86/platform/efi/efi-bgrt.c
index 6a2f5691b1ab..6aad870e8962 100644
--- a/arch/x86/platform/efi/efi-bgrt.c
+++ b/arch/x86/platform/efi/efi-bgrt.c
@@ -82,21 +82,12 @@ void __init efi_bgrt_init(void)
82 } 82 }
83 bgrt_image_size = bmp_header.size; 83 bgrt_image_size = bmp_header.size;
84 84
85 bgrt_image = kmalloc(bgrt_image_size, GFP_KERNEL | __GFP_NOWARN); 85 bgrt_image = memremap(bgrt_tab->image_address, bmp_header.size, MEMREMAP_WB);
86 if (!bgrt_image) { 86 if (!bgrt_image) {
87 pr_notice("Ignoring BGRT: failed to allocate memory for image (wanted %zu bytes)\n",
88 bgrt_image_size);
89 return;
90 }
91
92 image = memremap(bgrt_tab->image_address, bmp_header.size, MEMREMAP_WB);
93 if (!image) {
94 pr_notice("Ignoring BGRT: failed to map image memory\n"); 87 pr_notice("Ignoring BGRT: failed to map image memory\n");
95 kfree(bgrt_image);
96 bgrt_image = NULL; 88 bgrt_image = NULL;
97 return; 89 return;
98 } 90 }
99 91
100 memcpy(bgrt_image, image, bgrt_image_size); 92 efi_mem_reserve(bgrt_tab->image_address, bgrt_image_size);
101 memunmap(image);
102} 93}