linux/arch/mips
Rick Edgecombe 2f0584f3f4 mm: Rename arch pte_mkwrite()'s to pte_mkwrite_novma()
The x86 Shadow stack feature includes a new type of memory called shadow
stack. This shadow stack memory has some unusual properties, which requires
some core mm changes to function properly.

One of these unusual properties is that shadow stack memory is writable,
but only in limited ways. These limits are applied via a specific PTE
bit combination. Nevertheless, the memory is writable, and core mm code
will need to apply the writable permissions in the typical paths that
call pte_mkwrite(). The goal is to make pte_mkwrite() take a VMA, so
that the x86 implementation of it can know whether to create regular
writable or shadow stack mappings.

But there are a couple of challenges to this. Modifying the signatures of
each arch pte_mkwrite() implementation would be error prone because some
are generated with macros and would need to be re-implemented. Also, some
pte_mkwrite() callers operate on kernel memory without a VMA.

So this can be done in a three step process. First pte_mkwrite() can be
renamed to pte_mkwrite_novma() in each arch, with a generic pte_mkwrite()
added that just calls pte_mkwrite_novma(). Next callers without a VMA can
be moved to pte_mkwrite_novma(). And lastly, pte_mkwrite() and all callers
can be changed to take/pass a VMA.

Start the process by renaming pte_mkwrite() to pte_mkwrite_novma() and
adding the pte_mkwrite() wrapper in linux/pgtable.h. Apply the same
pattern for pmd_mkwrite(). Since not all archs have a pmd_mkwrite_novma(),
create a new arch config HAS_HUGE_PAGE that can be used to tell if
pmd_mkwrite() should be defined. Otherwise in the !HAS_HUGE_PAGE cases the
compiler would not be able to find pmd_mkwrite_novma().

No functional change.

Suggested-by: Linus Torvalds <torvalds@linuxfoundation.org>
Signed-off-by: Rick Edgecombe <rick.p.edgecombe@intel.com>
Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Reviewed-by: Mike Rapoport (IBM) <rppt@kernel.org>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: David Hildenbrand <david@redhat.com>
Link: https://lore.kernel.org/lkml/CAHk-=wiZjSu7c9sFYZb3q04108stgHff2wfbokGCCgW7riz+8Q@mail.gmail.com/
Link: https://lore.kernel.org/all/20230613001108.3040476-2-rick.p.edgecombe%40intel.com
2023-07-11 14:10:56 -07:00
..
alchemy TTY/Serial driver updates for 6.5-rc1. 2023-07-03 13:14:58 -07:00
ar7 mips: ar7: include linux/gpio/driver.h 2023-03-10 13:40:18 +02:00
ath25 MIPS: ath25: Constify static irq_domain_ops 2022-02-22 09:39:03 +01:00
ath79 MIPS: ath79: remove obsolete ATH79_DEV_* configs 2023-03-17 10:28:04 +01:00
bcm47xx MIPS: BCM47XX: Add support for Huawei B593u-12 2023-03-14 17:05:14 +01:00
bcm63xx MIPS: BCM63xx: Add check for NULL for clk in clk_enable 2022-12-09 23:37:06 +01:00
bmips mips: update a reference to a moved Arm Document 2023-06-13 03:47:20 -06:00
boot MIPS: dts: add missing space before { 2023-07-06 13:55:43 +02:00
cavium-octeon - added support for TP-Link HC220 G5 v1 2023-06-29 15:01:51 -07:00
cobalt
configs slab updates for 6.5 2023-06-29 16:34:12 -07:00
crypto crypto: Kconfig - simplify cipher entries 2022-08-26 18:50:43 +08:00
dec MIPS: fix typos in comments 2022-05-04 22:22:59 +02:00
fw MIPS: fw: Allow firmware to pass a empty env 2023-04-12 15:07:36 +02:00
generic mips: ingenic: Enable EXT/2 divider on JZ4750/55/60 if EXT is 24 MHz 2023-06-09 09:54:17 +02:00
include mm: Rename arch pte_mkwrite()'s to pte_mkwrite_novma() 2023-07-11 14:10:56 -07:00
ingenic
jazz MIPS: fix typos in comments 2022-05-04 22:22:59 +02:00
kernel - fixes for KVM 2023-07-09 10:02:49 -07:00
kvm MIPS: kvm: Fix build error with KVM_MIPS_DEBUG_COP0_COUNTERS enabled 2023-07-07 14:43:01 +02:00
lantiq MIPS: vpe-mt: drop physical_memsize 2023-02-20 15:11:01 +01:00
lib MIPS: Simplify __bswapdi2() and __bswapsi2() 2022-09-30 16:50:00 +02:00
loongson2ef MIPS: loongson2ef: Add missing break in cs5536_isa 2023-04-12 15:12:24 +02:00
loongson32 - added support for TP-Link HC220 G5 v1 2023-06-29 15:01:51 -07:00
loongson64 MIPS: SMP_CPS: Switch to hotplug core state synchronization 2023-05-15 13:44:58 +02:00
math-emu MIPS: Fix comment typo 2022-09-12 15:33:24 +02:00
mm - added support for TP-Link HC220 G5 v1 2023-06-29 15:01:51 -07:00
mti-malta MIPS: Remove deprecated CONFIG_MIPS_CMP 2023-04-12 15:01:09 +02:00
n64
net bpf, mips: Implement R4000 workarounds for JIT 2023-02-28 14:52:55 +01:00
pci mips: pci-mt7620: use dev_info() to log PCIe device detection result 2023-06-21 14:53:45 +02:00
pic32 MIPS: pic32: treat port as signed integer 2022-11-11 15:53:58 +01:00
power
ralink mips: ralink: match all supported system controller compatible strings 2023-06-23 15:00:37 +02:00
rb532 MIPS: rb532: move GPIOD definition into C-files 2022-03-30 20:26:26 +02:00
sgi-ip22 driver core: make struct bus_type.uevent() take a const * 2023-01-27 13:45:52 +01:00
sgi-ip27 MIPS: SGI-IP27: Fix platform-device leak in bridge_platform_create() 2022-09-19 16:33:27 +02:00
sgi-ip30 MIPS: SGI-IP30: Fix platform-device leak in bridge_platform_create() 2022-09-19 16:32:54 +02:00
sgi-ip32 MIPS: Allow modules to set board_be_handler 2021-11-09 16:07:26 +01:00
sibyte mips: Fix spacing issue 2023-06-09 09:49:59 +02:00
sni MIPS: sni: Fix the build 2021-10-18 18:09:54 +02:00
tools MIPS: fix typos in comments 2022-05-04 22:22:59 +02:00
txx9 MIPS: fix typos in comments 2022-05-04 22:22:59 +02:00
vdso vdso: Improve cmd_vdso_check to check all dynamic relocations 2023-03-21 21:15:34 +01:00
Kbuild kbuild: remove --include-dir MAKEFLAG from top Makefile 2023-02-05 18:51:22 +09:00
Kbuild.platforms MIPS: sibyte: Remove unused config option SIBYTE_BCM1x55 2023-03-17 10:27:08 +01:00
Kconfig - added support for TP-Link HC220 G5 v1 2023-06-29 15:01:51 -07:00
Kconfig.debug
Makefile - fixes for KVM 2023-07-09 10:02:49 -07:00
Makefile.postlink kbuild: remove --include-dir MAKEFLAG from top Makefile 2023-02-05 18:51:22 +09:00