After implementing STRICT_KERNEL_RWX, it turns out that implementing set_memory_ro/rw/x/nx is quite easy. The first patch is applied on top (http://patchwork.ozlabs.org/patch/795745/).
The first patch implements the various routines, the second patch enables ARCH_HAS_SET_MEMORY for PPC_BOOK3S_64 and the third patch enables the BPF infrastructure to use the set_memory_ro and set_memory_rw routines. Balbir Singh (3): arch/powerpc/set_memory: Implement set_memory_xx routines Enable ARCH_HAS_SET_MEMORY arch/powerpc/net/bpf: Basic EBPF support arch/powerpc/Kconfig | 1 + arch/powerpc/include/asm/book3s/64/hash.h | 6 +++ arch/powerpc/include/asm/book3s/64/radix.h | 6 +++ arch/powerpc/include/asm/set_memory.h | 34 +++++++++++++++ arch/powerpc/mm/pgtable-hash64.c | 51 ++++++++++++++++++++-- arch/powerpc/mm/pgtable-radix.c | 26 ++++++------ arch/powerpc/mm/pgtable_64.c | 68 ++++++++++++++++++++++++++++++ arch/powerpc/net/bpf_jit_comp64.c | 13 +----- 8 files changed, 177 insertions(+), 28 deletions(-) create mode 100644 arch/powerpc/include/asm/set_memory.h -- 2.9.4