diff options
author | Alexander Duyck <alexander.h.duyck@intel.com> | 2012-11-16 22:57:13 +0100 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2012-11-17 01:42:09 +0100 |
commit | fc8d782677f163dee76427fdd8a92bebd2b50b23 (patch) | |
tree | c3e228bd6a3c194cb28276bb834582a34a4ff371 /arch/x86/platform/efi | |
parent | x86: Drop 4 unnecessary calls to __pa_symbol (diff) | |
download | linux-fc8d782677f163dee76427fdd8a92bebd2b50b23.tar.xz linux-fc8d782677f163dee76427fdd8a92bebd2b50b23.zip |
x86: Use __pa_symbol instead of __pa on C visible symbols
When I made an attempt at separating __pa_symbol and __pa I found that there
were a number of cases where __pa was used on an obvious symbol.
I also caught one non-obvious case as _brk_start and _brk_end are based on the
address of __brk_base which is a C visible symbol.
In mark_rodata_ro I was able to reduce the overhead of kernel symbol to
virtual memory translation by using a combination of __va(__pa_symbol())
instead of page_address(virt_to_page()).
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Link: http://lkml.kernel.org/r/20121116215640.8521.80483.stgit@ahduyck-cp1.jf.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch/x86/platform/efi')
-rw-r--r-- | arch/x86/platform/efi/efi.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c index ad4439145f85..1b600266265e 100644 --- a/arch/x86/platform/efi/efi.c +++ b/arch/x86/platform/efi/efi.c @@ -410,8 +410,8 @@ void __init efi_reserve_boot_services(void) * - Not within any part of the kernel * - Not the bios reserved area */ - if ((start+size >= virt_to_phys(_text) - && start <= virt_to_phys(_end)) || + if ((start+size >= __pa_symbol(_text) + && start <= __pa_symbol(_end)) || !e820_all_mapped(start, start+size, E820_RAM) || memblock_is_region_reserved(start, size)) { /* Could not reserve, skip it */ |