Messages in this thread | | | From | Muchun Song <> | Date | Mon, 1 Apr 2019 22:21:58 +0800 | Subject | Re: [PATCH] arm64: mm: fix max_mapnr is assigned the wrong value |
| |
Hi Catalin,
Thanks for your reply. In fact, I didn't hit any problem. I just read the code and found the problem. I see max_mapnr is to only be used in the generic pfn_valid(). As you said, we do not use it on arm64. So in a sense, the patch is meaningless.
But I think since it is a problem, why not fix it (Even if max_mapnr is not be used)? What is your opinion?
Catalin Marinas <catalin.marinas@arm.com> 于2019年4月1日周一 下午6:44写道: > > On Sat, Mar 30, 2019 at 09:13:46PM +0800, Muchun Song wrote: > > When we not use flat memory, the mem_map will be NULL and > > pfn_to_page(max_pfn) is a pointer which is located in kernel space. So > > max_mapnr is assigned a very large number(e.g., 0xffffxxxx_xxxxxxxx) - fix > > it. > > > > Signed-off-by: Muchun Song <smuchun@gmail.com> > > --- > > arch/arm64/mm/init.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c > > index bc02818fa48b..e86c21a44c88 100644 > > --- a/arch/arm64/mm/init.c > > +++ b/arch/arm64/mm/init.c > > @@ -535,7 +535,7 @@ void __init mem_init(void) > > else > > swiotlb_force = SWIOTLB_NO_FORCE; > > > > - set_max_mapnr(pfn_to_page(max_pfn) - mem_map); > > + set_max_mapnr(max_pfn - PHYS_PFN_OFFSET); > > > > #ifndef CONFIG_SPARSEMEM_VMEMMAP > > free_unused_memmap(); > > The patch looks fine but did you actually hit any problem? max_mapnr > seems to only be used in the generic pfn_valid() which we do not use on > arm64 (just wondering if it needs a cc stable; it doesn't look like as > it's not a regression). > > -- > Catalin
| |