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-rc6. 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 | 92 ++++++++++ arch/mips/include/asm/elf.h | 3 + arch/mips/include/asm/fpu_emulator.h | 17 +- arch/mips/include/asm/mmu.h | 9 + arch/mips/include/asm/mmu_context.h | 6 + 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 | 14 ++ arch/mips/kernel/signal.c | 8 + arch/mips/kernel/vdso.c | 10 + arch/mips/math-emu/cp1emu.c | 8 +- arch/mips/math-emu/dsemul.c | 333 +++++++++++++++++++++++----------- 15 files changed, 417 insertions(+), 135 deletions(-) create mode 100644 arch/mips/include/asm/dsemul.h -- 2.9.0