Patch "powerpc: Emulation support for load/store instructions on LE" has been added to the 4.9-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
powerpc: Emulation support for load/store instructions on LE
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
powerpc-emulation-support-for-load-store-instructions-on-le.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
e148bd17f48bd17fca2f4f089ec879fa6e47e34cMon Sep 17 00:00:00 2001
From: Ravi Bangoria <[email protected]>
Date: Tue, 14 Feb 2017 14:46:42 +0530
Subject: powerpc: Emulation support for load/store instructions on LE
From: Ravi Bangoria <[email protected]>
commit e148bd17f48bd17fca2f4f089ec879fa6e47e34c upstream.
emulate_step() uses a number of underlying kernel functions that were initially not enabled for LE. This has been rectified since. So, fix emulate_step() for LE for the corresponding instructions.
--- arch/powerpc/lib/sstep.c | 20 -------------------- 1 file changed, 20 deletions(-)
arch/powerpc/lib/sstep.c +0 -20
@@ -1807,8 +1807,6 @@ int __kprobes emulate_step(struct pt_reg goto instr_done;case LARX : -if (regs->msr &MSR_LE ) -return 0 ;if (op.ea & (size -1 ))break ;/* can't handle misaligned */ err = -EFAULT ;
@@ -1832,8 +1830,6 @@ int __kprobes emulate_step(struct pt_reg goto ldst_done;case STCX : -if (regs->msr &MSR_LE ) -return 0 ;if (op.ea & (size -1 ))break ;/* can't handle misaligned */ err = -EFAULT ;
@@ -1859,8 +1855,6 @@ int __kprobes emulate_step(struct pt_reg goto ldst_done;case LOAD : -if (regs->msr &MSR_LE ) -return 0 ; err =read_mem (®s->gpr[op.reg], op.ea, size, regs);if (!err) {if (op.type &SIGNEXT )
@@ -1872,8 +1866,6 @@ int __kprobes emulate_step(struct pt_reg#ifdef CONFIG_PPC_FPU case LOAD_FP : -if (regs->msr &MSR_LE ) -return 0 ;if (size ==4 ) err =do_fp_load (op.reg, do_lfs, op.ea, size, regs);else
@@ -1882,15 +1874,11 @@ int __kprobes emulate_step(struct pt_reg#endif #ifdef CONFIG_ALTIVEC case LOAD_VMX : -if (regs->msr &MSR_LE ) -return 0 ; err =do_vec_load (op.reg, do_lvx, op.ea & ~0xfUL , regs); goto ldst_done;#endif #ifdef CONFIG_VSX case LOAD_VSX : -if (regs->msr &MSR_LE ) -return 0 ; err =do_vsx_load (op.reg, do_lxvd2x, op.ea, regs); goto ldst_done;#endif
@@ -1913,8 +1901,6 @@ int __kprobes emulate_step(struct pt_reg goto instr_done;case STORE : -if (regs->msr &MSR_LE ) -return 0 ; if ((op.type & UPDATE) && size == sizeof(long) && op.reg == 1 && op.update_reg == 1 && !(regs->msr & MSR_PR) &&
@@ -1927,8 +1913,6 @@ int __kprobes emulate_step(struct pt_reg#ifdef CONFIG_PPC_FPU case STORE_FP : -if (regs->msr &MSR_LE ) -return 0 ;if (size ==4 ) err =do_fp_store (op.reg, do_stfs, op.ea, size, regs);else
@@ -1937,15 +1921,11 @@ int __kprobes emulate_step(struct pt_reg#endif #ifdef CONFIG_ALTIVEC case STORE_VMX : -if (regs->msr &MSR_LE ) -return 0 ; err =do_vec_store (op.reg, do_stvx, op.ea & ~0xfUL , regs); goto ldst_done;#endif #ifdef CONFIG_VSX case STORE_VSX : -if (regs->msr &MSR_LE ) -return 0 ; err =do_vsx_store (op.reg, do_stxvd2x, op.ea, regs); goto ldst_done;#endif
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/powerpc-emulation-support-for-load-store-instructions-on-le.patch