Skip to content

MIPS Read Inhibit/eXecute Inhibit support (v2).

David Daney linux-mips 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest6 patches 7 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/6MIPS: Use 64-bit stores to c0_entrylo on 64-bit kernels.arch/mips/mm/tlbex.c+10 -100 replies
2/6MIPS: Add accessor functions and bit definitions for c0_PageGrainarch/mips/include/asm/mipsregs.h+11 -00 replies
3/6MIPS: Add TLBR and ROTR to uasm.arch/mips/include/asm/uasm.h arch/mips/mm/uasm.c+11 -20 replies
4/6MIPS: Implement Read Inhibit/eXecute Inhibitarch/mips/include/asm/cpu-features.h arch/mips/include/asm/pgtable-32.h arch/mips/include/asm/pgtable-64.h +7 more+333 -795 replies
5/6MIPS: Give Octeon+ CPUs their own cputype.arch/mips/include/asm/cpu.h arch/mips/kernel/cpu-probe.c arch/mips/mm/c-octeon.c+10 -50 replies
6/6MIPS: Enable Read Inhibit/eXecute Inhibit for Octeon+ CPUsarch/mips/include/asm/mach-cavium-octeon/cpu-feature-overrides.h+3 -00 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/6] MIPS Read Inhibit/eXecute Inhibit support (v2).

This patch set adds execute and read inhibit support. By default glibc based tool chains will create mappings for data areas of a program and shared libraries with PROT_EXEC cleared. With this patch applied, a SIGSEGV is correctly sent if an attempt is made to execute from data areas.

The first three patch just make a few tweaks in preperation for the main body of the patch in 4/6. The last two turn on the feature for some Octeon CPUs.

I will reply with the six patches.

David Daney (6):
MIPS: Use 64-bit stores to c0_entrylo on 64-bit kernels.
MIPS: Add accessor functions and bit definitions for c0_PageGrain
MIPS: Add TLBR and ROTR to uasm.
MIPS: Implement Read Inhibit/eXecute Inhibit
MIPS: Give Octeon+ CPUs their own cputype.
MIPS: Enable Read Inhibit/eXecute Inhibit for Octeon+ CPUs

 arch/mips/include/asm/cpu-features.h               |    3 +
 arch/mips/include/asm/cpu.h                        |    2 +-
 .../asm/mach-cavium-octeon/cpu-feature-overrides.h |    3 +
 arch/mips/include/asm/mipsregs.h                   |   11 ++
 arch/mips/include/asm/pgtable-32.h                 |    4 +-
 arch/mips/include/asm/pgtable-64.h                 |    4 +-
 arch/mips/include/asm/pgtable-bits.h               |  105 ++++++++++--
 arch/mips/include/asm/pgtable.h                    |   26 ++-
 arch/mips/include/asm/uasm.h                       |    4 +
 arch/mips/kernel/cpu-probe.c                       |    6 +-
 arch/mips/mm/c-octeon.c                            |    7 +-
 arch/mips/mm/cache.c                               |   53 ++++--
 arch/mips/mm/fault.c                               |   27 +++-
 arch/mips/mm/init.c                                |    2 +-
 arch/mips/mm/tlb-r4k.c                             |   19 ++-
 arch/mips/mm/tlbex.c                               |  183 
++++++++++++++++----
 arch/mips/mm/uasm.c                                |    9 +-
 17 files changed, 375 insertions(+), 93 deletions(-)