On Sat, Oct 22, 2022 at 10:30:51AM -0700, Linus Torvalds wrote: > On Sat, Oct 22, 2022 at 4:48 AM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > > > > --- a/include/linux/pgtable.h > > +++ b/include/linux/pgtable.h > > @@ -258,6 +258,13 @@ static inline pte_t ptep_get(pte_t *ptep > > } > > #endif > > > > +#ifndef __HAVE_ARCH_PMDP_GET > > +static inline pmd_t pmdp_get(pmd_t *pmdp) > > +{ > > + return READ_ONCE(*pmdp); > > +} > > +#endif > > What, what, what? > > Where did that __HAVE_ARCH_PMDP_GET come from? > > I'm not seeing it #define'd anywhere, and we _really_ shouldn't be > doing this any more. > > Please just do > > #ifndef pmdp_get > static inline pmd_t pmdp_get(pmd_t *pmdp) > .. > > and have the architectures that do their own pmdp_get(), just have that > > #define pmdp_get pmdp_get > > to let the generic code know about it. Instead of making up a new > __HAVE_ARCH_XYZ name. So I've stuck the below on. There's a *TON* more to convert and I'm not going to be doing that just now (seems like a clever enough script should be able to), but this gets rid of the new one I introduced. --- Subject: mm: Convert __HAVE_ARCH_P..P_GET to the new style From: Peter Zijlstra <peterz@xxxxxxxxxxxxx> Date: Tue Nov 1 12:53:18 CET 2022 Since __HAVE_ARCH_* style guards have been depricated in favour of defining the function name onto itself, convert pxxp_get(). Suggested-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx> --- arch/powerpc/include/asm/nohash/32/pgtable.h | 2 +- include/linux/pgtable.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) --- a/arch/powerpc/include/asm/nohash/32/pgtable.h +++ b/arch/powerpc/include/asm/nohash/32/pgtable.h @@ -263,7 +263,7 @@ static inline pte_basic_t pte_update(str } #ifdef CONFIG_PPC_16K_PAGES -#define __HAVE_ARCH_PTEP_GET +#define ptep_get ptep_get static inline pte_t ptep_get(pte_t *ptep) { pte_basic_t val = READ_ONCE(ptep->pte); --- a/include/linux/pgtable.h +++ b/include/linux/pgtable.h @@ -291,14 +291,14 @@ static inline void ptep_clear(struct mm_ ptep_get_and_clear(mm, addr, ptep); } -#ifndef __HAVE_ARCH_PTEP_GET +#ifndef ptep_get static inline pte_t ptep_get(pte_t *ptep) { return READ_ONCE(*ptep); } #endif -#ifndef __HAVE_ARCH_PMDP_GET +#ifndef pmdp_get static inline pmd_t pmdp_get(pmd_t *pmdp) { return READ_ONCE(*pmdp);