Re: [PATCH] mm/nvdimm: Use correct alignment when looking at first pfn from a region
From: Aneesh Kumar K.V <hidden>
Date: 2019-05-14 04:41:57
Also in:
linux-mm, nvdimm
From: Aneesh Kumar K.V <hidden>
Date: 2019-05-14 04:41:57
Also in:
linux-mm, nvdimm
On 5/14/19 9:59 AM, Dan Williams wrote:
On Mon, May 13, 2019 at 7:55 PM Aneesh Kumar K.V [off-list ref] wrote:quoted
We already add the start_pad to the resource->start but fails to section align the start. This make sure with altmap we compute the right first pfn when start_pad is zero and we are doing an align down of start address. Signed-off-by: Aneesh Kumar K.V <redacted> --- kernel/memremap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)diff --git a/kernel/memremap.c b/kernel/memremap.c index a856cb5ff192..23d77b60e728 100644 --- a/kernel/memremap.c +++ b/kernel/memremap.c@@ -59,9 +59,9 @@ static unsigned long pfn_first(struct dev_pagemap *pgmap) { const struct resource *res = &pgmap->res; struct vmem_altmap *altmap = &pgmap->altmap; - unsigned long pfn; + unsigned long pfn = PHYS_PFN(res->start); - pfn = res->start >> PAGE_SHIFT; + pfn = SECTION_ALIGN_DOWN(pfn);This does not seem right to me it breaks the assumptions of where the first expected valid pfn occurs in the passed in range.
How do we define the first valid pfn? Isn't that at pfn_sb->dataoff ? -aneesh