Re: [PATCH v5 0/5] Implement STRICT_MODULE_RWX for powerpc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





Le 30/10/2019 à 08:31, Russell Currey a écrit :
v4 cover letter: https://lists.ozlabs.org/pipermail/linuxppc-dev/2019-October/198268.html
v3 cover letter: https://lists.ozlabs.org/pipermail/linuxppc-dev/2019-October/198023.html

Changes since v4:
	[1/5]: Addressed review comments from Michael Ellerman (thanks!)
	[4/5]: make ARCH_HAS_STRICT_MODULE_RWX depend on
	       ARCH_HAS_STRICT_KERNEL_RWX to simplify things and avoid
	       STRICT_MODULE_RWX being *on by default* in cases where
	       STRICT_KERNEL_RWX is *unavailable*
	[5/5]: split skiroot_defconfig changes out into its own patch

The whole Kconfig situation is really weird and confusing, I believe the
correct resolution is to change arch/Kconfig but the consequences are so
minor that I don't think it's worth it, especially given that I expect
powerpc to have mandatory strict RWX Soon(tm).

I'm not such strict RWX can be made mandatory due to the impact it has on some subarches: - On the 8xx, unless all areas are 8Mbytes aligned, there is a significant overhead on TLB misses. And Aligning everthing to 8M is a waste of RAM which is not acceptable on systems having very few RAM. - On hash book3s32, we are able to map the kernel BATs. With a few alignment constraints, we are able to provide STRICT_KERNEL_RWX. But we are unable to provide exec protection on page granularity. Only on 256Mbytes segments. So for modules, we have to have the vmspace X. It is also not possible to have a kernel area RO. Only user areas can be made RO.

Christophe


Russell Currey (5):
   powerpc/mm: Implement set_memory() routines
   powerpc/kprobes: Mark newly allocated probes as RO
   powerpc/mm/ptdump: debugfs handler for W+X checks at runtime
   powerpc: Set ARCH_HAS_STRICT_MODULE_RWX
   powerpc/configs: Enable STRICT_MODULE_RWX in skiroot_defconfig

  arch/powerpc/Kconfig                   |  2 +
  arch/powerpc/Kconfig.debug             |  6 +-
  arch/powerpc/configs/skiroot_defconfig |  1 +
  arch/powerpc/include/asm/set_memory.h  | 32 +++++++++++
  arch/powerpc/kernel/kprobes.c          |  3 +
  arch/powerpc/mm/Makefile               |  1 +
  arch/powerpc/mm/pageattr.c             | 77 ++++++++++++++++++++++++++
  arch/powerpc/mm/ptdump/ptdump.c        | 21 ++++++-
  8 files changed, 140 insertions(+), 3 deletions(-)
  create mode 100644 arch/powerpc/include/asm/set_memory.h
  create mode 100644 arch/powerpc/mm/pageattr.c




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux