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@xxxxxxxxxx> > >> --- > >> 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