Le 04/03/2021 à 03:04, Naveen N. Rao a écrit :
'lis r2,N' is 'addis r2,0,N' and the instruction encoding in the macro
LIS_R2 is incorrect (it currently maps to 'addis 0,r2,N'). Fix the same.

Fixes: c71b7eff426fa7 ("powerpc: Add ABIv2 support to ppc_function_entry")
Reported-by: Jiri Olsa <jo...@redhat.com>
Signed-off-by: Naveen N. Rao <naveen.n....@linux.vnet.ibm.com>
---
  arch/powerpc/include/asm/code-patching.h | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/include/asm/code-patching.h 
b/arch/powerpc/include/asm/code-patching.h
index eacc9102c2515c..d5b3c3bb95b400 100644
--- a/arch/powerpc/include/asm/code-patching.h
+++ b/arch/powerpc/include/asm/code-patching.h
@@ -73,7 +73,7 @@ void __patch_exception(int exc, unsigned long addr);
  #endif
#define OP_RT_RA_MASK 0xffff0000UL
-#define LIS_R2         0x3c020000UL
+#define LIS_R2         0x3c400000UL
  #define ADDIS_R2_R12  0x3c4c0000UL
  #define ADDI_R2_R2    0x38420000UL

That probably goes beyond the scope of this patch, but it would be more readable and less error prone to use macros defined in ppc-opcode.h just like kernel/module_64.c does for instance:

#define LIS_R2  (PPC_INST_ADDIS | __PPC_RT(R2))
#define ADDIS_R2_R12    (PPC_INST_ADDIS | __PPC_RT(R2) | __PPC_RA(R12))
#define ADDI_R2_R2      (PPC_INST_ADDI | __PPC_RT(R2) | __PPC_RA(R2))

base-commit: 91966823812efbd175f904599e5cf2a854b39809

Reply via email to