[PATCH 2/4] mm: ioremap: Add arch_ioremap/iounmap_check()

Andrew Morton akpm at linux-foundation.org
Wed Apr 27 11:25:45 PDT 2022


On Wed, 27 Apr 2022 20:20:30 +0200 Arnd Bergmann <arnd at arndb.de> wrote:

> On Wed, Apr 27, 2022 at 2:14 PM Kefeng Wang <wangkefeng.wang at huawei.com> wrote:
> > @@ -964,6 +964,9 @@ static inline void iounmap(volatile void __iomem *addr)
> >  #elif defined(CONFIG_GENERIC_IOREMAP)
> >  #include <linux/pgtable.h>
> >
> > +bool arch_ioremap_check(phys_addr_t addr, size_t size, unsigned long prot);
> > +bool arch_iounmap_check(void __iomem *addr);
> > +
> >  void __iomem *ioremap_prot(phys_addr_t addr, size_t size, unsigned long prot);
> >  void iounmap(volatile void __iomem *addr);
> >
> > diff --git a/mm/ioremap.c b/mm/ioremap.c
> > index 522ef899c35f..d1117005dcc7 100644
> > --- a/mm/ioremap.c
> > +++ b/mm/ioremap.c
> > @@ -11,6 +11,16 @@
> >  #include <linux/io.h>
> >  #include <linux/export.h>
> >
> > +bool __weak arch_ioremap_check(phys_addr_t addr, size_t size, unsigned long prot)
> > +{
> > +       return true;
> > +}
> > +
> > +bool __weak arch_iounmap_check(void __iomem *addr)
> > +{
> > +       return true;
> > +}
> > +
> 
> I don't really like the weak functions.

How come?  They work quite nicely here?

> The normal way to do this

Is a lot more fuss.



More information about the linux-arm-kernel mailing list