On 9/22/26 19:12, Muhammad Usama Anjum wrote: > Atomic PTE updates need an lvalue for the bits stored in an HW PTE. > pte_val() only accepts a SW PTE value, so it cannot operate directly on > a distinct hw_pte_t. > > Add hw_pte_val() to expose the underlying pte_val() lvalue. Access the > wrapper's __pte member when hw_pte_t is distinct, and use pte_val() > directly when it remains an alias of pte_t. > > Signed-off-by: Muhammad Usama Anjum <[email protected]> > --- > Changes in v3: > - Moved from the arm64 series to generic series as it makes more sense > to add this in generic with all other changes. Usually we only add > code where its get used. But this whole series wouldn't get used > until an arch started using HW PTEs. > --- > include/linux/pgtable_types.h | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/include/linux/pgtable_types.h b/include/linux/pgtable_types.h > index d6c5a7548550b..ee4eace5c3e1c 100644 > --- a/include/linux/pgtable_types.h > +++ b/include/linux/pgtable_types.h > @@ -9,9 +9,13 @@ > #ifdef CONFIG_ARCH_HAS_HW_PTE_T > typedef struct __hw_pte_t { pte_t __pte; } hw_pte_t; > #define __pte_from_hw(pte) ((pte).__pte) > + > +#define hw_pte_val(x) pte_val((x).__pte) > #else > #define hw_pte_t pte_t > #define __pte_from_hw(pte) (pte) > + > +#define hw_pte_val(x) pte_val(x) > #endif
I was just about to say: this series doesn't add any users. You should add that detail to the patch description: "prepare for usage in arch code" or sth like that. With that Acked-by: David Hildenbrand (Arm) <[email protected]> -- Cheers, David
