diff options
author | Anton Blanchard <anton@samba.org> | 2014-03-10 20:54:06 -0400 |
---|---|---|
committer | Anton Blanchard <anton@samba.org> | 2014-04-22 20:05:26 -0400 |
commit | 2751b628c97e66e61f482935ca59148751972941 (patch) | |
tree | 86ef576395f448da30512daea224c1f1bf258807 /arch/powerpc/platforms/pseries/smp.c | |
parent | d51959d70ffc55d1c829e881a6121e6fbbfb29af (diff) |
powerpc: Fix SMP issues with ppc64le ABIv2
There is no need to put a function descriptor in
__secondary_hold_spinloop. Use ppc_function_entry to get the
instruction address and put it in __secondary_hold_spinloop instead.
Also fix an issue where we assumed cur_cpu_spec held a function
descriptor.
Signed-off-by: Anton Blanchard <anton@samba.org>
Diffstat (limited to 'arch/powerpc/platforms/pseries/smp.c')
-rw-r--r-- | arch/powerpc/platforms/pseries/smp.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/powerpc/platforms/pseries/smp.c b/arch/powerpc/platforms/pseries/smp.c index 24f58cb0a543..a3555b10c1a5 100644 --- a/arch/powerpc/platforms/pseries/smp.c +++ b/arch/powerpc/platforms/pseries/smp.c | |||
@@ -44,6 +44,7 @@ | |||
44 | #include <asm/xics.h> | 44 | #include <asm/xics.h> |
45 | #include <asm/dbell.h> | 45 | #include <asm/dbell.h> |
46 | #include <asm/plpar_wrappers.h> | 46 | #include <asm/plpar_wrappers.h> |
47 | #include <asm/code-patching.h> | ||
47 | 48 | ||
48 | #include "pseries.h" | 49 | #include "pseries.h" |
49 | #include "offline_states.h" | 50 | #include "offline_states.h" |
@@ -96,8 +97,8 @@ int smp_query_cpu_stopped(unsigned int pcpu) | |||
96 | static inline int smp_startup_cpu(unsigned int lcpu) | 97 | static inline int smp_startup_cpu(unsigned int lcpu) |
97 | { | 98 | { |
98 | int status; | 99 | int status; |
99 | unsigned long start_here = __pa((u32)*((unsigned long *) | 100 | unsigned long start_here = |
100 | generic_secondary_smp_init)); | 101 | __pa(ppc_function_entry(generic_secondary_smp_init)); |
101 | unsigned int pcpu; | 102 | unsigned int pcpu; |
102 | int start_cpu; | 103 | int start_cpu; |
103 | 104 | ||