[PATCH] powerpc: Fix handling of alignment interrupt on dcbz instruction

Michael Ellerman michael at ellerman.id.au
Wed Sep 13 16:53:34 AEST 2017


Michal, Christian, can you please confirm this fixes the problems you were seeing.

cheers

On 13 September 2017 2:51:24 pm AEST, Paul Mackerras <paulus at ozlabs.org> wrote:
>This fixes the emulation of the dcbz instruction in the alignment
>interrupt handler.  The error was that we were comparing just the
>instruction type field of op.type rather than the whole thing,
>and therefore the comparison "type != CACHEOP + DCBZ" was always
>true.
>
>Fixes: 31bfdb036f12 ("powerpc: Use instruction emulation infrastructure
>to handle alignment faults")
>Signed-off-by: Paul Mackerras <paulus at ozlabs.org>
>---
> arch/powerpc/kernel/align.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/arch/powerpc/kernel/align.c b/arch/powerpc/kernel/align.c
>index 26b9994d27ee..43ef25156480 100644
>--- a/arch/powerpc/kernel/align.c
>+++ b/arch/powerpc/kernel/align.c
>@@ -341,7 +341,7 @@ int fix_alignment(struct pt_regs *regs)
> 
> 	type = op.type & INSTR_TYPE_MASK;
> 	if (!OP_IS_LOAD_STORE(type)) {
>-		if (type != CACHEOP + DCBZ)
>+		if (op.type != CACHEOP + DCBZ)
> 			return -EINVAL;
> 		PPC_WARN_ALIGNMENT(dcbz, regs);
> 		r = emulate_dcbz(op.ea, regs);
>-- 
>2.11.0

-- 
Sent from my Android phone with K-9 Mail. Please excuse my brevity.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20170913/62072538/attachment-0003.html>


More information about the Linuxppc-dev mailing list