|
@@ -49,8 +49,7 @@ void __patch_exception(int exc, unsigned long addr);
|
|
|
|
|
|
static inline unsigned long ppc_function_entry(void *func)
|
|
|
{
|
|
|
-#if defined(CONFIG_PPC64)
|
|
|
-#if defined(_CALL_ELF) && _CALL_ELF == 2
|
|
|
+#ifdef PPC64_ELF_ABI_v2
|
|
|
u32 *insn = func;
|
|
|
|
|
|
/*
|
|
@@ -75,14 +74,13 @@ static inline unsigned long ppc_function_entry(void *func)
|
|
|
return (unsigned long)(insn + 2);
|
|
|
else
|
|
|
return (unsigned long)func;
|
|
|
-#else
|
|
|
+#elif defined(PPC64_ELF_ABI_v1)
|
|
|
/*
|
|
|
* On PPC64 ABIv1 the function pointer actually points to the
|
|
|
* function's descriptor. The first entry in the descriptor is the
|
|
|
* address of the function text.
|
|
|
*/
|
|
|
return ((func_descr_t *)func)->entry;
|
|
|
-#endif
|
|
|
#else
|
|
|
return (unsigned long)func;
|
|
|
#endif
|
|
@@ -90,7 +88,7 @@ static inline unsigned long ppc_function_entry(void *func)
|
|
|
|
|
|
static inline unsigned long ppc_global_function_entry(void *func)
|
|
|
{
|
|
|
-#if defined(CONFIG_PPC64) && defined(_CALL_ELF) && _CALL_ELF == 2
|
|
|
+#ifdef PPC64_ELF_ABI_v2
|
|
|
/* PPC64 ABIv2 the global entry point is at the address */
|
|
|
return (unsigned long)func;
|
|
|
#else
|
|
@@ -106,7 +104,7 @@ static inline unsigned long ppc_global_function_entry(void *func)
|
|
|
*/
|
|
|
|
|
|
/* This must match the definition of STK_GOT in <asm/ppc_asm.h> */
|
|
|
-#if defined(_CALL_ELF) && _CALL_ELF == 2
|
|
|
+#ifdef PPC64_ELF_ABI_v2
|
|
|
#define R2_STACK_OFFSET 24
|
|
|
#else
|
|
|
#define R2_STACK_OFFSET 40
|