diff options
| -rw-r--r-- | arch/x86/include/asm/realmode.h | 6 | ||||
| -rw-r--r-- | arch/x86/platform/efi/quirks.c | 2 | ||||
| -rw-r--r-- | arch/x86/realmode/init.c | 9 |
3 files changed, 7 insertions, 10 deletions
diff --git a/arch/x86/include/asm/realmode.h b/arch/x86/include/asm/realmode.h index 63b3393bd98e..c53682303c9c 100644 --- a/arch/x86/include/asm/realmode.h +++ b/arch/x86/include/asm/realmode.h | |||
| @@ -77,7 +77,11 @@ static inline size_t real_mode_size_needed(void) | |||
| 77 | return ALIGN(real_mode_blob_end - real_mode_blob, PAGE_SIZE); | 77 | return ALIGN(real_mode_blob_end - real_mode_blob, PAGE_SIZE); |
| 78 | } | 78 | } |
| 79 | 79 | ||
| 80 | void set_real_mode_mem(phys_addr_t mem, size_t size); | 80 | static inline void set_real_mode_mem(phys_addr_t mem) |
| 81 | { | ||
| 82 | real_mode_header = (struct real_mode_header *) __va(mem); | ||
| 83 | } | ||
| 84 | |||
| 81 | void reserve_real_mode(void); | 85 | void reserve_real_mode(void); |
| 82 | 86 | ||
| 83 | #endif /* __ASSEMBLY__ */ | 87 | #endif /* __ASSEMBLY__ */ |
diff --git a/arch/x86/platform/efi/quirks.c b/arch/x86/platform/efi/quirks.c index 458a0e2bcc57..a25a9fd987a9 100644 --- a/arch/x86/platform/efi/quirks.c +++ b/arch/x86/platform/efi/quirks.c | |||
| @@ -449,7 +449,7 @@ void __init efi_free_boot_services(void) | |||
| 449 | */ | 449 | */ |
| 450 | rm_size = real_mode_size_needed(); | 450 | rm_size = real_mode_size_needed(); |
| 451 | if (rm_size && (start + rm_size) < (1<<20) && size >= rm_size) { | 451 | if (rm_size && (start + rm_size) < (1<<20) && size >= rm_size) { |
| 452 | set_real_mode_mem(start, rm_size); | 452 | set_real_mode_mem(start); |
| 453 | start += rm_size; | 453 | start += rm_size; |
| 454 | size -= rm_size; | 454 | size -= rm_size; |
| 455 | } | 455 | } |
diff --git a/arch/x86/realmode/init.c b/arch/x86/realmode/init.c index 47d097946872..7dce39c8c034 100644 --- a/arch/x86/realmode/init.c +++ b/arch/x86/realmode/init.c | |||
| @@ -15,13 +15,6 @@ u32 *trampoline_cr4_features; | |||
| 15 | /* Hold the pgd entry used on booting additional CPUs */ | 15 | /* Hold the pgd entry used on booting additional CPUs */ |
| 16 | pgd_t trampoline_pgd_entry; | 16 | pgd_t trampoline_pgd_entry; |
| 17 | 17 | ||
| 18 | void __init set_real_mode_mem(phys_addr_t mem, size_t size) | ||
| 19 | { | ||
| 20 | void *base = __va(mem); | ||
| 21 | |||
| 22 | real_mode_header = (struct real_mode_header *) base; | ||
| 23 | } | ||
| 24 | |||
| 25 | void __init reserve_real_mode(void) | 18 | void __init reserve_real_mode(void) |
| 26 | { | 19 | { |
| 27 | phys_addr_t mem; | 20 | phys_addr_t mem; |
| @@ -40,7 +33,7 @@ void __init reserve_real_mode(void) | |||
| 40 | } | 33 | } |
| 41 | 34 | ||
| 42 | memblock_reserve(mem, size); | 35 | memblock_reserve(mem, size); |
| 43 | set_real_mode_mem(mem, size); | 36 | set_real_mode_mem(mem); |
| 44 | } | 37 | } |
| 45 | 38 | ||
| 46 | static void __init setup_real_mode(void) | 39 | static void __init setup_real_mode(void) |
