Messages in this thread | | | Date | Fri, 13 May 2022 09:36:59 +0200 | From | Oscar Salvador <> | Subject | Re: [PATCH] x86/mm: Fix marking of unused sub-pmd ranges |
| |
On 2022-05-09 11:06, Adrian-Ken Rueegsegger wrote: > The unused part precedes the new range spanned by the start, end > parameters of vmemmap_use_new_sub_pmd. This means it actually goes from > ALIGN_DOWN(start, PMD_SIZE) up to start. Use the correct address when > applying the mark using memset. > > Fixes: 8d400913c231 ("x86/vmemmap: handle unpopulated sub-pmd ranges") > Signed-off-by: Adrian-Ken Rueegsegger <ken@codelabs.ch>
Yes, this was clearly an oversight from my side. Thanks for fixing it!
Reviewed-by: Oscar Salvador <osalvador@suse.de>
> --- > arch/x86/mm/init_64.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c > index 96d34ebb20a9..e2942335d143 100644 > --- a/arch/x86/mm/init_64.c > +++ b/arch/x86/mm/init_64.c > @@ -902,6 +902,8 @@ static void __meminit vmemmap_use_sub_pmd(unsigned > long start, unsigned long end > > static void __meminit vmemmap_use_new_sub_pmd(unsigned long start, > unsigned long end) > { > + const unsigned long page = ALIGN_DOWN(start, PMD_SIZE); > + > vmemmap_flush_unused_pmd(); > > /* > @@ -914,8 +916,7 @@ static void __meminit > vmemmap_use_new_sub_pmd(unsigned long start, unsigned long > * Mark with PAGE_UNUSED the unused parts of the new memmap range > */ > if (!IS_ALIGNED(start, PMD_SIZE)) > - memset((void *)start, PAGE_UNUSED, > - start - ALIGN_DOWN(start, PMD_SIZE)); > + memset((void *)page, PAGE_UNUSED, start - page); > > /* > * We want to avoid memset(PAGE_UNUSED) when populating the vmemmap > of
-- Oscar Salvador SUSE Labs
| |