Re: Missing operand for tlbie instruction on Power7
From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2015-10-06 03:35:23
Also in:
lkml
On Fri, 2015-10-02 at 08:43 -0700, Laura Abbott wrote:
Hi, We received a report (https://bugzilla.redhat.com/show_bug.cgi?id=1267395) of bad assembly when compiling on powerpc with little endian
...
After some discussion with the binutils folks, it turns out that the tlbie instruction actually requires another operand and binutils was updated to check for this https://sourceware.org/ml/binutils/2015-05/msg00133.html . The code sequence in arch/powerpc/include/asm/ppc_asm.h now needs to be updated: #if !defined(CONFIG_4xx) && !defined(CONFIG_8xx) #define tlbia \ li r4,1024; \ mtctr r4; \ lis r4,KERNELBASE@h; \ 0: tlbie r4; \ addi r4,r4,0x1000; \ bdnz 0b #endif I don't know enough ppc assembly to properly fix this but I can test.
How are you testing? This code is fairly old and I'm dubious if it still works. These days we have a ppc_md hook for flushing the TLB, ppc_md.flush_tlb(). Ideally the swsusp code would use that. cheers