Le 10/07/2024 à 20:41, Peter Xu a écrit : > 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. > Surprisingly, having both a macro and a static inline simultaneously defining pud_leaf() on loongarch was not a problem but as soon as there are two macros the compiler cries. I will wait a bit more to see if robots report anything else then I'll send an update fix. Christophe