Centos-kernel-stream-9/arch/hexagon
Prarit Bhargava 93771c2f9e mm: Rename arch pte_mkwrite()'s to pte_mkwrite_novma()
JIRA: https://issues.redhat.com/browse/RHEL-25415

Conflicts: Not worried about unsupported arches.  Minor drift issues in
arch/s390/Kconfig.

commit 2f0584f3f4bd60bcc8735172981fb0bff86e74e0
Author: Rick Edgecombe <rick.p.edgecombe@intel.com>
Date:   Mon Jun 12 17:10:27 2023 -0700

    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

Signed-off-by: Prarit Bhargava <prarit@redhat.com>
2024-03-20 09:43:12 -04:00
..
configs Merge branch 'akpm' (patches from Andrew) 2021-05-07 00:34:51 -07:00
include mm: Rename arch pte_mkwrite()'s to pte_mkwrite_novma() 2024-03-20 09:43:12 -04:00
kernel fork: Generalize PF_IO_WORKER handling 2024-03-20 09:43:04 -04:00
lib Hexagon: add target builtins to kernel 2021-05-03 11:04:22 -05:00
mm mm: avoid unnecessary page fault retires on shared memory types 2023-03-24 11:18:32 -04:00
Kbuild hexagon: move core-y in arch/hexagon/Makefile to arch/hexagon/Kbuild 2021-05-26 23:11:47 +09:00
Kconfig tracing: Refactor TRACE_IRQFLAGS_SUPPORT in Kconfig 2023-03-02 15:50:31 -05:00
Kconfig.debug
Makefile hexagon: move core-y in arch/hexagon/Makefile to arch/hexagon/Kbuild 2021-05-26 23:11:47 +09:00