On Wed, Jul 14, 2021 at 06:08:14PM -0700, Dan Williams wrote:
> > +static inline unsigned long pgmap_geometry(struct dev_pagemap *pgmap)
> > +{
> > + if (!pgmap || !pgmap->geometry)
> > + return PAGE_SIZE;
> > + return pgmap->geometry;
> > +}
> > +
> > +static inline unsigned long pgmap_pfn_geometry(struct dev_pagemap *pgmap)
> > +{
> > + return PHYS_PFN(pgmap_geometry(pgmap));
> > +}
>
> Are both needed? Maybe just have ->geometry natively be in nr_pages
> units directly, because pgmap_pfn_geometry() makes it confusing
> whether it's a geometry of the pfn or the geometry of the pgmap.
Actually - do we need non-power of two sizes here? Otherwise a shift
for the pfns would be really nice as that simplifies a lot of the
calculations.