This series allows us to support non-executable stacks on systems with RIXI by moving delay slot instruction emulation off of the user stack & into a dedicated page. This is a revision of patches 6114/6125 & 6115 from a few years back: https://patchwork.linux-mips.org/patch/6114 https://patchwork.linux-mips.org/patch/6125 https://patchwork.linux-mips.org/patch/6115 The series applies atop v4.7-rc5, and is marked RFC as it could use a little more testing before I'd be happy with it being merged. Paul Burton (2): MIPS: use per-mm page to execute branch delay slot instructions MIPS: non-exec stack & heap when non-exec PT_GNU_STACK is present arch/mips/Kconfig | 1 + arch/mips/include/asm/dsemul.h | 90 +++++++++ arch/mips/include/asm/elf.h | 5 + arch/mips/include/asm/fpu_emulator.h | 17 +- arch/mips/include/asm/mmu.h | 11 ++ arch/mips/include/asm/mmu_context.h | 7 + arch/mips/include/asm/page.h | 6 +- arch/mips/include/asm/processor.h | 18 +- arch/mips/kernel/elf.c | 19 ++ arch/mips/kernel/mips-r2-to-r6-emul.c | 8 +- arch/mips/kernel/process.c | 6 + arch/mips/kernel/signal.c | 8 + arch/mips/math-emu/cp1emu.c | 8 +- arch/mips/math-emu/dsemul.c | 342 +++++++++++++++++++++++----------- 14 files changed, 411 insertions(+), 135 deletions(-) create mode 100644 arch/mips/include/asm/dsemul.h -- 2.9.0