Re: [RFC V2 4/6] sh/mm: Stop using [p4d|pud|pmd]_ERROR()
Anshuman Khandual <[email protected]>
| Newsgroups | org.infradead.lists.linux-um,dev.linux.lists.loongarch,org.infradead.lists.linux-arm-kernel,org.infradead.lists.linux-riscv,org.infradead.lists.linux-snps-arc,org.kernel.vger.linux-alpha,org.kernel.vger.linux-arch,org.kernel.vger.linux-csky,org.kernel.vger.linux-hexagon,org.kernel.vger.linux-kernel,org.kernel.vger.linux-m68k,org.kernel.vger.linux-mips,org.kernel.vger.linux-openrisc,org.kernel.vger.linux-parisc,org.kernel.vger.linux-s390,org.kernel.vger.linux-sh,org.kernel.vger.sparclinux,org.kvack.linux-mm,org.ozlabs.lists.linuxppc-dev |
|---|---|
| Message-ID | <3bruvrvxg5blgzuhqg2f27yvfjvvsycx6lmt3jcianvpuqcs5n@zdgzfhmmhvom> |
On Wed, Aug 12, 2026 at 01:21:28PM +0200, David Hildenbrand (Arm) wrote: > On 8/11/26 06:21, Anshuman Khandual wrote: > > Stop using [p4d|pud|pmd]_ERROR() in __get_pte_phys() as the pgtable entries > > are known to be NULL and hence could not really be accessed. > > > > Cc: Yoshinori Sato <[email protected]> > > Cc: Rich Felker <[email protected]> > > Cc: John Paul Adrian Glaubitz <[email protected]> > > Cc: [email protected] > > Cc: [email protected] > > Signed-off-by: Anshuman Khandual <[email protected]> > > --- > > arch/sh/mm/init.c | 12 +++--------- > > 1 file changed, 3 insertions(+), 9 deletions(-) > > > > diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c > > index b3c7fd84ceb4..0bb8555568a4 100644 > > --- a/arch/sh/mm/init.c > > +++ b/arch/sh/mm/init.c > > @@ -58,22 +58,16 @@ static pte_t *__get_pte_phys(unsigned long addr) > > } > > > > p4d = p4d_alloc(NULL, pgd, addr); > > - if (unlikely(!p4d)) { > > - p4d_ERROR(*p4d); > > + if (unlikely(!p4d)) > > return NULL; > > - } > > > > pud = pud_alloc(NULL, p4d, addr); > > - if (unlikely(!pud)) { > > - pud_ERROR(*pud); > > + if (unlikely(!pud)) > > return NULL; > > - } > > > > pmd = pmd_alloc(NULL, pud, addr); > > - if (unlikely(!pmd)) { > > - pmd_ERROR(*pmd); > > + if (unlikely(!pmd)) > > return NULL; > > - } > > > > return pte_offset_kernel(pmd, addr); > > } > > Do we want to print an error like "allocating p4d table failed"? Sure, will add error prints like the following. --- a/arch/sh/mm/init.c +++ b/arch/sh/mm/init.c @@ -56,16 +56,22 @@ static pte_t *__get_pte_phys(unsigned long addr) return NULL; p4d = p4d_alloc(NULL, pgd, addr); - if (unlikely(!p4d)) + if (unlikely(!p4d)) { + pr_err("allocating p4d table failed\n"); return NULL; + } pud = pud_alloc(NULL, p4d, addr); - if (unlikely(!pud)) + if (unlikely(!pud)) { + pr_err("allocating pud table failed\n"); return NULL; + } pmd = pmd_alloc(NULL, pud, addr); - if (unlikely(!pmd)) + if (unlikely(!pmd)) { + pr_err("allocating pmd table failed\n"); return NULL; + } return pte_offset_kernel(pmd, addr); } > > Reviewed-by: David Hildenbrand (Arm) <[email protected]> > > -- > Cheers, > > David