mm/nvdimm: Use correct alignment when looking at first pfn from a region
PATCH v5 1/1 mm/nvdimm: Use correct alignment when looking at first pfn from a region
vmem_altmap_offset() adjust the section aligned base_pfn offset. So we need to make sure we account for the same when computing base_pfn.
ie, for altmap_valid case, our pfn_first should be:
pfn_first = altmap->base_pfn + vmem_altmap_offset(altmap);
Signed-off-by Aneesh Kumar K.V <[email protected]>
---
Changes from v4:
* rebase to latest kernel
mm/memremap.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-)
mm/memremap.c +10 -2
@@ -54,8 +54,16 @@ static void pgmap_array_delete(struct resource *res)static unsigned long pfn_first (struct dev_pagemap *pgmap) { -return PHYS_PFN (pgmap->res.start) + -vmem_altmap_offset (pgmap_altmap (pgmap)); +const struct resource *res = &pgmap->res; +struct vmem_altmap *altmap =pgmap_altmap (pgmap); +unsigned long pfn; + +if (altmap) { + pfn = altmap->base_pfn +vmem_altmap_offset (altmap); + }else + pfn =PHYS_PFN (res->start); + +return pfn; }static unsigned long pfn_end (struct dev_pagemap *pgmap)
Signature · 6 lines
2.21.0 _______________________________________________ Linux-nvdimm mailing list [email protected] https://lists.01.org/mailman/listinfo/linux-nvdimm