Re: [PATCH v6 11/41] mm: Introduce pte_mkwrite_kernel()
From: David Hildenbrand <hidden>
Date: 2023-02-20 11:19:01
Also in:
linux-api, linux-arch, linux-doc, linux-mm, linux-s390, lkml, xen-devel
On 19.02.23 21:38, Kees Cook wrote:
On Sat, Feb 18, 2023 at 01:14:03PM -0800, Rick Edgecombe wrote:quoted
The x86 Control-flow Enforcement Technology (CET) 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 changes is to allow for pte_mkwrite() to create different types of writable memory (the existing conventionally writable type and also the new shadow stack type). Future patches will convert pte_mkwrite() to take a VMA in order to facilitate this, however there are places in the kernel where pte_mkwrite() is called outside of the context of a VMA. These are for kernel memory. So create a new variant called pte_mkwrite_kernel() and switch the kernel users over to it. Have pte_mkwrite() and pte_mkwrite_kernel() be the same for now. Future patches will introduce changes to make pte_mkwrite() take a VMA. Only do this for architectures that need it because they call pte_mkwrite() in arch code without an associated VMA. Since it will only currently be used in arch code, so do not include it in arch_pgtable_helpers.rst. Cc: linux-doc@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-s390@vger.kernel.org Cc: xen-devel@lists.xenproject.org Cc: linux-arch@vger.kernel.org Cc: linux-mm@kvack.org Tested-by: Pengfei Xu <redacted> Suggested-by: David Hildenbrand <redacted> Signed-off-by: Rick Edgecombe <rick.p.edgecombe@intel.com>I think it's a little weird that it's the only PTE helper taking a vma, but it does seem like the right approach.
Right. We could pass the vm flags instead, but not sure if that really improves the situation. So unless someone has a better idea, this LGTM. -- Thanks, David / dhildenb _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel