On 2021/2/2 19:47, Ding Tianhong wrote: > On 2021/2/2 19:13, Russell King - ARM Linux admin wrote: >> On Tue, Feb 02, 2021 at 09:05:02PM +1000, Nicholas Piggin wrote: >>> diff --git a/arch/arm/include/asm/pgtable.h b/arch/arm/include/asm/pgtable.h >>> index c02f24400369..d63a5bb6bd0c 100644 >>> --- a/arch/arm/include/asm/pgtable.h >>> +++ b/arch/arm/include/asm/pgtable.h >>> @@ -166,6 +166,9 @@ extern struct page *empty_zero_page; >>> >>> extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; >>> >>> +#define pud_page(pud) pmd_page(__pmd(pud_val(pud))) >>> +#define pud_write(pud) pmd_write(__pmd(pud_val(pud))) >> >> As there is no PUD, does it really make sense to return a valid >> struct page (which will be the PTE page) for pud_page(), which is >> several tables above? >> > --- a/arch/arm/include/asm/pgtable-2level.h > +++ b/arch/arm/include/asm/pgtable-2level.h > > +static inline int pud_none(pud_t pud) > +{ > + return 0; > +} > --- a/arch/arm/include/asm/pgtable-2level.h +++ b/arch/arm/include/asm/pgtable-2level.h> +static inline int pud_page(pud_t pud) +{ + return 0; +} > I think it could be fix like this. > > Ding >