Re: [PATCH v3 08/22] mm: Allow page table accessors to be non-idempotent
From: David Hildenbrand (Red Hat)
Date: Thu Nov 27 2025 - 12:47:47 EST
On 11/27/25 17:57, Ryan Roberts wrote:
On 13/11/2025 01:45, Samuel Holland wrote:
Currently, some functions such as pte_offset_map() are passed both
pointers to hardware page tables, and pointers to previously-read PMD
entries on the stack. To ensure correctness in the first case, these
functions must use the page table accessor function (pmdp_get()) to
dereference the supplied pointer. However, this means pmdp_get() is
called twice in the second case. This double call must be avoided if
pmdp_get() applies some non-idempotent transformation to the value.
Avoid the double transformation by calling set_pmd() on the stack
variables where necessary to keep set_pmd()/pmdp_get() calls balanced.
I don't think this is a good solution.
Agreed,
set_pmd(&pmd, pmd);
is rather horrible.
--
Cheers
David