aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/traps.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/kernel/traps.c')
-rw-r--r--arch/powerpc/kernel/traps.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
index 071f6e040eb2..300daf3e7ab0 100644
--- a/arch/powerpc/kernel/traps.c
+++ b/arch/powerpc/kernel/traps.c
@@ -866,6 +866,10 @@ static int emulate_string_inst(struct pt_regs *regs, u32 instword)
866 u8 val; 866 u8 val;
867 u32 shift = 8 * (3 - (pos & 0x3)); 867 u32 shift = 8 * (3 - (pos & 0x3));
868 868
869 /* if process is 32-bit, clear upper 32 bits of EA */
870 if ((regs->msr & MSR_64BIT) == 0)
871 EA &= 0xFFFFFFFF;
872
869 switch ((instword & PPC_INST_STRING_MASK)) { 873 switch ((instword & PPC_INST_STRING_MASK)) {
870 case PPC_INST_LSWX: 874 case PPC_INST_LSWX:
871 case PPC_INST_LSWI: 875 case PPC_INST_LSWI: