[PATCH v2 3/3] mm: Add p{g/4}d_leaf() in asm-generic/pgtable-nop{4/u}d.h

Peter Xu peterx at redhat.com
Wed Jul 10 11:41:19 PDT 2024


On Wed, Jul 10, 2024 at 02:54:36PM +0000, LEROY Christophe wrote:
> 
> 
> Le 10/07/2024 à 16:46, Peter Xu a écrit :
> > On Wed, Jul 10, 2024 at 09:51:22AM +0200, Christophe Leroy wrote:
> >> Commit 2c8a81dc0cc5 ("riscv/mm: fix two page table check related
> >> issues") added pud_leaf() in include/asm-generic/pgtable-nopmd.h
> >>
> >> Do the same for p4d_leaf() and pgd_leaf() to avoid getting them
> >> erroneously defined by architectures that do not implement the
> >> related page level.
> >>
> >> Signed-off-by: Christophe Leroy <christophe.leroy at csgroup.eu>
> >> ---
> >> v2: Added pXd_leaf macro as well in asm-generic/pgtable-nopXd.h to cohabit with the fallback
> >> ---
> > 
> > Thanks.  I'd drop the inline functions, but no strong opinions.
> 
> Inline functions enable type checking.
> 
> With a macro you would be able to write pud_leaf(pgd) without the 
> compiler noticing the mistake.
> 
> All other helpers in asm-generic/pgtable-nopXd.h are functions so from 
> my point of view it makes sense to keep them as functions not macros.

Whoever fallbacks to the pgtable.h pxx_leaf() will still use macros and
lose the type check again.  I'd rather rely on cross-arch builds and most
of real *_leaf() users will always detect a type mismatch.

Totally no big deal, and I agree keeping them match nopxd.h rules makes
sense.

Thanks,

-- 
Peter Xu




More information about the linux-riscv mailing list