Merge tag 'pwm/for-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry...
[linux-2.6-microblaze.git] / drivers / nvdimm / pfn_devs.c
index 3e11ef8..b499df6 100644 (file)
@@ -672,7 +672,7 @@ static unsigned long init_altmap_reserve(resource_size_t base)
 
 static int __nvdimm_setup_pfn(struct nd_pfn *nd_pfn, struct dev_pagemap *pgmap)
 {
-       struct resource *res = &pgmap->res;
+       struct range *range = &pgmap->range;
        struct vmem_altmap *altmap = &pgmap->altmap;
        struct nd_pfn_sb *pfn_sb = nd_pfn->pfn_sb;
        u64 offset = le64_to_cpu(pfn_sb->dataoff);
@@ -689,16 +689,17 @@ static int __nvdimm_setup_pfn(struct nd_pfn *nd_pfn, struct dev_pagemap *pgmap)
                .end_pfn = PHYS_PFN(end),
        };
 
-       memcpy(res, &nsio->res, sizeof(*res));
-       res->start += start_pad;
-       res->end -= end_trunc;
-
+       *range = (struct range) {
+               .start = nsio->res.start + start_pad,
+               .end = nsio->res.end - end_trunc,
+       };
+       pgmap->nr_range = 1;
        if (nd_pfn->mode == PFN_MODE_RAM) {
                if (offset < reserve)
                        return -EINVAL;
                nd_pfn->npfns = le64_to_cpu(pfn_sb->npfns);
        } else if (nd_pfn->mode == PFN_MODE_PMEM) {
-               nd_pfn->npfns = PHYS_PFN((resource_size(res) - offset));
+               nd_pfn->npfns = PHYS_PFN((range_len(range) - offset));
                if (le64_to_cpu(nd_pfn->pfn_sb->npfns) > nd_pfn->npfns)
                        dev_info(&nd_pfn->dev,
                                        "number of pfns truncated from %lld to %ld\n",