On Wed, Nov 6, 2019 at 7:16 PM Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote: > > Hi Palmer, > > On Wed, Nov 6, 2019 at 7:11 PM Palmer Dabbelt <palmer@xxxxxxxxxxx> wrote: > > It looks like the difference in prototype between the architectures is between > > > > void __iomem *ioremap(resource_size_t, size_t) > > void __iomem *ioremap(phys_addr_t, size_t) > > void __iomem *ioremap(phys_addr_t, unsigned long) > > void __iomem *ioremap(unsigned long, unsigned long) > > > > shouldn't they all just be that first one? In other words, wouldn't it be > > better to always provide the generic ioremap prototype and unify the ports > > instead? > > Agreed. But I'd go for the second one. Right, phys_addr_t is the correct type here, resource_size_t is just a generic type that is at least as long as any resource, and usually the same as phys_addr_t, which is supposed to be used for physical addresses. Arnd