Messages in this thread | | | From | Daniel Axtens <> | Subject | Re: [PATCH v10 4/5] x86/kasan: support KASAN_VMALLOC | Date | Thu, 31 Oct 2019 00:50:05 +1100 |
| |
Andrey Ryabinin <aryabinin@virtuozzo.com> writes:
> On 10/29/19 7:20 AM, Daniel Axtens wrote: >> In the case where KASAN directly allocates memory to back vmalloc >> space, don't map the early shadow page over it. >> >> We prepopulate pgds/p4ds for the range that would otherwise be empty. >> This is required to get it synced to hardware on boot, allowing the >> lower levels of the page tables to be filled dynamically. >> >> Acked-by: Dmitry Vyukov <dvyukov@google.com> >> Signed-off-by: Daniel Axtens <dja@axtens.net> >> >> --- > >> +static void __init kasan_shallow_populate_pgds(void *start, void *end) >> +{ >> + unsigned long addr, next; >> + pgd_t *pgd; >> + void *p; >> + int nid = early_pfn_to_nid((unsigned long)start); > > This doesn't make sense. start is not even a pfn. With linear mapping > we try to identify nid to have the shadow on the same node as memory. But > in this case we don't have memory or the corresponding shadow (yet), > we only install pgd/p4d. > I guess we could just use NUMA_NO_NODE.
Ah wow, that's quite the clanger on my part.
There are a couple of other invocations of early_pfn_to_nid in that file that use an address directly, but at least they reference actual memory. I'll send a separate patch to fix those up.
> The rest looks ok, so with that fixed: > > Reviewed-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
Thanks heaps! I've fixed up the nit you identifed in the first patch, and I agree that the last patch probably isn't needed. I'll respin the series shortly.
Regards, Daniel
| |