<html><head></head><body>Michal, Christian, can you please confirm this fixes the problems you were seeing.<br>
<br>
cheers<br><br><div class="gmail_quote">On 13 September 2017 2:51:24 pm AEST, Paul Mackerras <paulus@ozlabs.org> wrote:<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="k9mail">This fixes the emulation of the dcbz instruction in the alignment<br />interrupt handler.  The error was that we were comparing just the<br />instruction type field of op.type rather than the whole thing,<br />and therefore the comparison "type != CACHEOP + DCBZ" was always<br />true.<br /><br />Fixes: 31bfdb036f12 ("powerpc: Use instruction emulation infrastructure to handle alignment faults")<br />Signed-off-by: Paul Mackerras <paulus@ozlabs.org><br />---<br /> arch/powerpc/kernel/align.c | 2 +-<br /> 1 file changed, 1 insertion(+), 1 deletion(-)<br /><br />diff --git a/arch/powerpc/kernel/align.c b/arch/powerpc/kernel/align.c<br />index 26b9994d27ee..43ef25156480 100644<br />--- a/arch/powerpc/kernel/align.c<br />+++ b/arch/powerpc/kernel/align.c<br />@@ -341,7 +341,7 @@ int fix_alignment(struct pt_regs *regs)<br /> <br />  type = op.type & INSTR_TYPE_MASK;<br />  if (!OP_IS_LOAD_STORE(type)) {<br />-  if (type != CACHEOP + DCBZ)<br />+  if (op.type != CACHEOP + DCBZ)<br />    return -EINVAL;<br />   PPC_WARN_ALIGNMENT(dcbz, regs);<br />   r = emulate_dcbz(op.ea, regs);</pre></blockquote></div><br>
-- <br>
Sent from my Android phone with K-9 Mail. Please excuse my brevity.</body></html>