Re: [RFC V3 8/8] mm: Drop pxd_ERROR()
From: Anshuman Khandual
Date: Thu Aug 27 2026 - 01:28:40 EST
On Mon, Aug 24, 2026 at 10:50:37AM -0500, Samuel Holland wrote:
> On 2026-08-17 11:00 PM, Anshuman Khandual wrote:
> > There are no more users left for any pxd_ERROR() either in generic MM or in
> > the platform MM. Hence all these platform macros along with their generic
> > fallback could be dropped across the tree.
> >
> > Cc: linux-alpha@xxxxxxxxxxxxxxx
> > Cc: linux-snps-arc@xxxxxxxxxxxxxxxxxxx
> > Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
> > Cc: linux-csky@xxxxxxxxxxxxxxx
> > Cc: linux-hexagon@xxxxxxxxxxxxxxx
> > Cc: loongarch@xxxxxxxxxxxxxxx
> > Cc: linux-m68k@xxxxxxxxxxxxxxxxxxxx
> > Cc: linux-mips@xxxxxxxxxxxxxxx
> > Cc: linux-openrisc@xxxxxxxxxxxxxxx
> > Cc: linux-parisc@xxxxxxxxxxxxxxx
> > Cc: linuxppc-dev@xxxxxxxxxxxxxxxx
> > Cc: linux-riscv@xxxxxxxxxxxxxxxxxxx
> > Cc: linux-s390@xxxxxxxxxxxxxxx
> > Cc: linux-sh@xxxxxxxxxxxxxxx
> > Cc: sparclinux@xxxxxxxxxxxxxxx
> > Cc: linux-um@xxxxxxxxxxxxxxxxxxx
> > Cc: linux-arch@xxxxxxxxxxxxxxx
> > Cc: linux-mm@xxxxxxxxx
> > Cc: linux-kernel@xxxxxxxxxxxxxxx
> > Acked-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> # m68k
> > Signed-off-by: Anshuman Khandual <anshuman.khandual@xxxxxxx>
> > ---
> > Changes in RFC V3
> >
> > - Moved ptrval_to_str() as header in a [PATCH 1/8]
> > - Stopped using pxd_ERROR() in generic MM in [PATCH 2/8]
> > - Dropped pxd_ERRO() macros from all platforms in this patch
> >
> > arch/alpha/include/asm/pgtable.h | 7 -------
> > arch/arc/include/asm/pgtable-levels.h | 11 -----------
> > arch/arm/include/asm/pgtable.h | 7 -------
> > arch/arm/kernel/traps.c | 17 -----------------
> > arch/arm64/include/asm/pgtable.h | 15 ---------------
> > arch/csky/include/asm/pgtable.h | 4 ----
> > arch/hexagon/include/asm/pgtable.h | 3 ---
> > arch/loongarch/include/asm/pgtable.h | 11 -----------
> > arch/m68k/include/asm/mcf_pgtable.h | 6 ------
> > arch/m68k/include/asm/motorola_pgtable.h | 8 --------
> > arch/m68k/include/asm/sun3_pgtable.h | 7 -------
> > arch/microblaze/include/asm/pgtable.h | 7 -------
> > arch/mips/include/asm/pgtable-32.h | 10 ----------
> > arch/mips/include/asm/pgtable-64.h | 13 -------------
> > arch/nios2/include/asm/pgtable.h | 7 -------
> > arch/openrisc/include/asm/pgtable.h | 7 -------
> > arch/parisc/include/asm/pgtable.h | 9 ---------
> > arch/powerpc/include/asm/book3s/32/pgtable.h | 2 --
> > arch/powerpc/include/asm/book3s/64/pgtable.h | 7 -------
> > arch/powerpc/include/asm/nohash/32/pgtable.h | 2 --
> > .../powerpc/include/asm/nohash/64/pgtable-4k.h | 3 ---
> > arch/powerpc/include/asm/nohash/64/pgtable.h | 5 -----
> > arch/riscv/include/asm/pgtable-64.h | 9 ---------
> > arch/riscv/include/asm/pgtable.h | 4 ----
> > arch/s390/include/asm/pgtable.h | 11 -----------
> > arch/sh/include/asm/pgtable-3level.h | 3 ---
> > arch/sh/include/asm/pgtable_32.h | 8 --------
> > arch/sparc/include/asm/pgtable_32.h | 3 ---
> > arch/sparc/include/asm/pgtable_64.h | 10 ----------
> > arch/um/include/asm/pgtable-2level.h | 7 -------
> > arch/um/include/asm/pgtable-4level.h | 13 -------------
> > arch/x86/include/asm/pgtable-2level.h | 5 -----
> > arch/x86/include/asm/pgtable-3level.h | 11 -----------
> > arch/x86/include/asm/pgtable_64.h | 18 ------------------
> > arch/xtensa/include/asm/pgtable.h | 4 ----
> > include/asm-generic/pgtable-nop4d.h | 1 -
> > include/asm-generic/pgtable-nopmd.h | 1 -
> > include/asm-generic/pgtable-nopud.h | 1 -
> > 38 files changed, 277 deletions(-)
> > ...
> > diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h
> > index 5d5756bda82e..993a6505eb8f 100644
> > --- a/arch/riscv/include/asm/pgtable.h
> > +++ b/arch/riscv/include/asm/pgtable.h
> > @@ -559,10 +559,6 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
> > return __pte((pte_val(pte) & _PAGE_CHG_MASK) | newprot_val);
> > }
> >
> > -#define pgd_ERROR(e) \
> > - pr_err("%s:%d: bad pgd " PTE_FMT ".\n", __FILE__, __LINE__, pgd_val(e))
>
> We can drop the PTE_FMT macro now too.
Agreed, will just fold in the following changes.
diff --git a/arch/riscv/include/asm/page.h b/arch/riscv/include/asm/page.h
index 709a36fb4323..b4bbae55e931 100644
--- a/arch/riscv/include/asm/page.h
+++ b/arch/riscv/include/asm/page.h
@@ -76,12 +76,6 @@ typedef struct page *pgtable_t;
#define __pgd(x) ((pgd_t) { (x) })
#define __pgprot(x) ((pgprot_t) { (x) })
-#ifdef CONFIG_64BIT
-#define PTE_FMT "%016lx"
-#else
-#define PTE_FMT "%08lx"
-#endif
-
#if defined(CONFIG_64BIT) && defined(CONFIG_MMU)
/*
* We override this value as its generic definition uses __pa too early in
>
> Regards,
> Samuel
>