diff options
Diffstat (limited to 'arch/x86/platform/efi/efi-bgrt.c')
| -rw-r--r-- | arch/x86/platform/efi/efi-bgrt.c | 13 |
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 | } |
