powerpc: Fix handling of alignment interrupt on dcbz instruction
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@ozlabs.org> Tested-by: Michal Sojka <sojkam1@fel.cvut.cz> Tested-by: Christian Zigotzky <chzigotzky@xenosoft.de> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
bac65d9d87
commit
1bc944cee6
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user