The single-operand form of tlbie used to be accepted as the second operand (L) being implicitly 0. Newer binutils reject this.
Change remaining single-op tlbie instructions to have explicit 0 second argument. Cc: Scott Wood <o...@buserror.net> Cc: Christophe Leroy <christophe.le...@c-s.fr> Signed-off-by: Nicholas Piggin <npig...@gmail.com> --- arch/powerpc/include/asm/ppc_asm.h | 2 +- arch/powerpc/kernel/head_32.S | 2 +- arch/powerpc/kernel/head_8xx.S | 8 ++++---- arch/powerpc/kernel/swsusp_32.S | 2 +- arch/powerpc/mm/hash_low_32.S | 8 ++++---- arch/powerpc/mm/mmu_decl.h | 2 +- arch/powerpc/platforms/powermac/sleep.S | 2 +- 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/arch/powerpc/include/asm/ppc_asm.h b/arch/powerpc/include/asm/ppc_asm.h index 359c44341761..6e250733912a 100644 --- a/arch/powerpc/include/asm/ppc_asm.h +++ b/arch/powerpc/include/asm/ppc_asm.h @@ -418,7 +418,7 @@ END_FTR_SECTION_IFCLR(CPU_FTR_601) lis r4,KERNELBASE@h; \ .machine push; \ .machine "power4"; \ -0: tlbie r4; \ +0: tlbie r4,0; \ .machine pop; \ addi r4,r4,0x1000; \ bdnz 0b diff --git a/arch/powerpc/kernel/head_32.S b/arch/powerpc/kernel/head_32.S index e22734278458..c0be7f9654ac 100644 --- a/arch/powerpc/kernel/head_32.S +++ b/arch/powerpc/kernel/head_32.S @@ -1103,7 +1103,7 @@ END_MMU_FTR_SECTION_IFSET(MMU_FTR_USE_HIGH_BATS) flush_tlbs: lis r10, 0x40 1: addic. r10, r10, -0x1000 - tlbie r10 + tlbie r10,0 bgt 1b sync blr diff --git a/arch/powerpc/kernel/head_8xx.S b/arch/powerpc/kernel/head_8xx.S index c032fe8c2d26..dda28cad8024 100644 --- a/arch/powerpc/kernel/head_8xx.S +++ b/arch/powerpc/kernel/head_8xx.S @@ -317,9 +317,9 @@ SystemCall: #ifdef CONFIG_8xx_CPU15 #define INVALIDATE_ADJACENT_PAGES_CPU15(tmp, addr) \ addi tmp, addr, PAGE_SIZE; \ - tlbie tmp; \ + tlbie tmp,0; \ addi tmp, addr, -PAGE_SIZE; \ - tlbie tmp + tlbie tmp,0 #else #define INVALIDATE_ADJACENT_PAGES_CPU15(tmp, addr) #endif @@ -572,7 +572,7 @@ InstructionTLBError: mr r5,r9 andis. r10,r5,0x4000 beq+ 1f - tlbie r4 + tlbie r4,0 itlbie: /* 0x400 is InstructionAccess exception, needed by bad_page_fault() */ 1: EXC_XFER_LITE(0x400, handle_page_fault) @@ -597,7 +597,7 @@ DARFixed:/* Return from dcbx instruction bug workaround */ mfspr r4,SPRN_DAR andis. r10,r5,0x4000 beq+ 1f - tlbie r4 + tlbie r4,0 dtlbie: 1: li r10,RPN_PATTERN mtspr SPRN_DAR,r10 /* Tag DAR, to be used in DTLB Error */ diff --git a/arch/powerpc/kernel/swsusp_32.S b/arch/powerpc/kernel/swsusp_32.S index ba4dee3d233f..cb26ab39a8d5 100644 --- a/arch/powerpc/kernel/swsusp_32.S +++ b/arch/powerpc/kernel/swsusp_32.S @@ -302,7 +302,7 @@ END_MMU_FTR_SECTION_IFSET(MMU_FTR_USE_HIGH_BATS) /* Flush all TLBs */ lis r4,0x1000 1: addic. r4,r4,-0x1000 - tlbie r4 + tlbie r4,0 bgt 1b sync diff --git a/arch/powerpc/mm/hash_low_32.S b/arch/powerpc/mm/hash_low_32.S index 6f962e5cb5e1..31dfbc51a3f1 100644 --- a/arch/powerpc/mm/hash_low_32.S +++ b/arch/powerpc/mm/hash_low_32.S @@ -350,7 +350,7 @@ _GLOBAL(hash_page_patch_A) */ andi. r6,r6,_PAGE_HASHPTE beq+ 10f /* no PTE: go look for an empty slot */ - tlbie r4 + tlbie r4,0 addis r4,r7,htab_hash_searches@ha lwz r6,htab_hash_searches@l(r4) @@ -610,7 +610,7 @@ _GLOBAL(flush_hash_patch_B) 3: li r0,0 STPTE r0,0(r12) /* invalidate entry */ 4: sync - tlbie r4 /* in hw tlb too */ + tlbie r4,0 /* in hw tlb too */ sync 8: ble cr1,9f /* if all ptes checked */ @@ -659,7 +659,7 @@ _GLOBAL(_tlbie) stwcx. r8,0,r9 bne- 10b eieio - tlbie r3 + tlbie r3,0 sync TLBSYNC li r0,0 @@ -668,7 +668,7 @@ _GLOBAL(_tlbie) SYNC_601 isync #else /* CONFIG_SMP */ - tlbie r3 + tlbie r3,0 sync #endif /* CONFIG_SMP */ blr diff --git a/arch/powerpc/mm/mmu_decl.h b/arch/powerpc/mm/mmu_decl.h index f988db655e5b..9b9e780b8003 100644 --- a/arch/powerpc/mm/mmu_decl.h +++ b/arch/powerpc/mm/mmu_decl.h @@ -55,7 +55,7 @@ extern void _tlbil_pid_noind(unsigned int pid); static inline void _tlbil_va(unsigned long address, unsigned int pid, unsigned int tsize, unsigned int ind) { - asm volatile ("tlbie %0; sync" : : "r" (address) : "memory"); + asm volatile ("tlbie %0,0; sync" : : "r" (address) : "memory"); } #elif defined(CONFIG_PPC_BOOK3E) extern void _tlbil_va(unsigned long address, unsigned int pid, diff --git a/arch/powerpc/platforms/powermac/sleep.S b/arch/powerpc/platforms/powermac/sleep.S index 1c2802fabd57..7991ae5b83f6 100644 --- a/arch/powerpc/platforms/powermac/sleep.S +++ b/arch/powerpc/platforms/powermac/sleep.S @@ -347,7 +347,7 @@ END_MMU_FTR_SECTION_IFSET(MMU_FTR_USE_HIGH_BATS) /* Flush all TLBs */ lis r4,0x1000 1: addic. r4,r4,-0x1000 - tlbie r4 + tlbie r4,0 blt 1b sync -- 2.11.0