x86: Drop 4 unnecessary calls to __pa_symbol
authorAlexander Duyck <alexander.h.duyck@intel.com>
Fri, 16 Nov 2012 21:56:35 +0000 (13:56 -0800)
committerH. Peter Anvin <hpa@linux.intel.com>
Sat, 17 Nov 2012 00:42:09 +0000 (16:42 -0800)
While debugging the __pa_symbol inline patch I found that there were a couple
spots where __pa_symbol was used as follows:
__pa_symbol(x) - __pa_symbol(y)

The compiler had reduced them to:
x - y

Since we also support a debug case where __pa_symbol is a function call it
would probably be useful to just change the two cases I found so that they are
always just treated as "x - y".  As such I am casting the values to
phys_addr_t and then doing simple subtraction so that the correct type and
value is returned.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Link: http://lkml.kernel.org/r/20121116215552.8521.68085.stgit@ahduyck-cp1.jf.intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
arch/x86/kernel/head32.c
arch/x86/kernel/head64.c

index c18f59d..f15db0c 100644 (file)
@@ -30,8 +30,8 @@ static void __init i386_default_early_setup(void)
 
 void __init i386_start_kernel(void)
 {
-       memblock_reserve(__pa_symbol(&_text),
-                        __pa_symbol(&__bss_stop) - __pa_symbol(&_text));
+       memblock_reserve(__pa_symbol(_text),
+                        (phys_addr_t)__bss_stop - (phys_addr_t)_text);
 
 #ifdef CONFIG_BLK_DEV_INITRD
        /* Reserve INITRD */
index 037df57..42f5df1 100644 (file)
@@ -97,8 +97,8 @@ void __init x86_64_start_reservations(char *real_mode_data)
 {
        copy_bootdata(__va(real_mode_data));
 
-       memblock_reserve(__pa_symbol(&_text),
-                        __pa_symbol(&__bss_stop) - __pa_symbol(&_text));
+       memblock_reserve(__pa_symbol(_text),
+                        (phys_addr_t)__bss_stop - (phys_addr_t)_text);
 
 #ifdef CONFIG_BLK_DEV_INITRD
        /* Reserve INITRD */