linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/9] Provide STRICT_KERNEL_RWX for powerpc
@ 2017-06-27  7:48 Balbir Singh
  2017-06-27  7:48 ` [PATCH v4 1/9] powerpc/lib/code-patching: Use alternate map for patch_instruction() Balbir Singh
                   ` (8 more replies)
  0 siblings, 9 replies; 15+ messages in thread
From: Balbir Singh @ 2017-06-27  7:48 UTC (permalink / raw)
  To: linuxppc-dev, mpe; +Cc: naveen.n.rao, christophe.leroy, paulus, Balbir Singh

Provide STRICT_KERNEL_RWX for PPC64/BOOK3S

These patches enable RX mappings of kernel text.
rodata is mapped RX as well as a trade-off, there
are more details in the patch description

As a prerequisite for R/O text, patch_instruction
is moved over to using a separate mapping that
allows write to kernel text. xmon/ftrace/kprobes
have been moved over to work with patch_instruction

There is a bug fix, the updatepp and updateboltedpp
(pseries) providers, did not use flags as described in
PAPR (patch 6). I would like to see that patch marked
to stable, I've not added a Cc:stable myself.

Another build failure was reported, because instead
of using ARCH_HAS_SET_MEMORY as a gate for set_memory.h
inclusion, some of the infrastructure in the core kernel
uses CONFIG_STRICT_KERNEL_RWX. I've sent a fix to the
fix the latter. It should be picked up by 4.13 at which
time we can remove the config dependency on !HIBERNATION
in arch/powerpc/Kconfig

This version received testing under CONFIG_RELOCATABLE_TEST.
CONFIG_STRICT_KERNEL_RWX does not work great with that config
and disables the feature when relocation is on and prints
a warning message. The radix variant of CONFIG_RELOCATABLE_TEST
did not boot with and without the config, I am investigating
the issue. I also suspect optprobes might not be compatible
with relocatable kernels (even without these patches).

After these changes go in we can get the PPC32 varaint
for the same feature based on patches already posted
by Christophe.

Changelog v4:
	Multiple cleanups to patch_instruction() based on
	review comments from Michael Ellerman
	Changes to Kconfig to make the feature selectable
Changelog v3:
	Support radix
	Drop ptdump patch, already picked from v2
Changelog v2:
	Support optprobes via patch_instruction

Balbir Singh (9):
  powerpc/lib/code-patching: Use alternate map for patch_instruction()
  powerpc/kprobes: Move kprobes over to patch_instruction
  powerpc/kprobes/optprobes: Move over to patch_instruction
  powerpc/xmon: Add patch_instruction() support for xmon
  powerpc/vmlinux.lds: Align __init_begin to 16M
  powerpc/platform/pseries/lpar: Fix updatepp and updateboltedpp
  powerpc/mm/hash: Implement mark_rodata_ro() for hash
  powerpc/mm/radix: Implement mark_rodata_ro() for radix
  powerpc/Kconfig: Enable STRICT_KERNEL_RWX

 arch/powerpc/Kconfig                       |   2 +
 arch/powerpc/include/asm/book3s/64/hash.h  |   3 +
 arch/powerpc/include/asm/book3s/64/radix.h |   4 +
 arch/powerpc/kernel/kprobes.c              |   4 +-
 arch/powerpc/kernel/optprobes.c            |  58 +++++++----
 arch/powerpc/kernel/vmlinux.lds.S          |  10 +-
 arch/powerpc/lib/code-patching.c           | 160 ++++++++++++++++++++++++++++-
 arch/powerpc/mm/pgtable-hash64.c           |  41 ++++++++
 arch/powerpc/mm/pgtable-radix.c            |  73 ++++++++++++-
 arch/powerpc/mm/pgtable_64.c               |   9 ++
 arch/powerpc/platforms/pseries/lpar.c      |  21 +++-
 arch/powerpc/xmon/xmon.c                   |   7 +-
 12 files changed, 358 insertions(+), 34 deletions(-)

-- 
2.9.4

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2017-06-27 11:20 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-06-27  7:48 [PATCH v4 0/9] Provide STRICT_KERNEL_RWX for powerpc Balbir Singh
2017-06-27  7:48 ` [PATCH v4 1/9] powerpc/lib/code-patching: Use alternate map for patch_instruction() Balbir Singh
2017-06-27  8:32   ` Christophe LEROY
2017-06-27 11:19     ` Balbir Singh
2017-06-27  7:48 ` [PATCH v4 2/9] powerpc/kprobes: Move kprobes over to patch_instruction Balbir Singh
2017-06-27  8:34   ` Christophe LEROY
2017-06-27  7:48 ` [PATCH v4 3/9] powerpc/kprobes/optprobes: Move " Balbir Singh
2017-06-27  8:34   ` Christophe LEROY
2017-06-27 11:13     ` Balbir Singh
2017-06-27  7:48 ` [PATCH v4 4/9] powerpc/xmon: Add patch_instruction() support for xmon Balbir Singh
2017-06-27  7:48 ` [PATCH v4 5/9] powerpc/vmlinux.lds: Align __init_begin to 16M Balbir Singh
2017-06-27  7:49 ` [PATCH v4 6/9] powerpc/platform/pseries/lpar: Fix updatepp and updateboltedpp Balbir Singh
2017-06-27  7:49 ` [PATCH v4 7/9] powerpc/mm/hash: Implement mark_rodata_ro() for hash Balbir Singh
2017-06-27  7:49 ` [PATCH v4 8/9] powerpc/mm/radix: Implement mark_rodata_ro() for radix Balbir Singh
2017-06-27  7:49 ` [PATCH v4 9/9] powerpc/Kconfig: Enable STRICT_KERNEL_RWX Balbir Singh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).