Messages in this thread | | | From | David Gow <> | Date | Thu, 17 Jun 2021 16:43:49 +0800 | Subject | Re: [PATCH] mm/vmalloc: unbreak kasan vmalloc support |
| |
On Thu, Jun 17, 2021 at 4:13 PM Daniel Axtens <dja@axtens.net> wrote: > > In commit 121e6f3258fe ("mm/vmalloc: hugepage vmalloc mappings"), > __vmalloc_node_range was changed such that __get_vm_area_node was no > longer called with the requested/real size of the vmalloc allocation, but > rather with a rounded-up size. > > This means that __get_vm_area_node called kasan_unpoision_vmalloc() with > a rounded up size rather than the real size. This led to it allowing > access to too much memory and so missing vmalloc OOBs and failing the > kasan kunit tests. > > Pass the real size and the desired shift into __get_vm_area_node. This > allows it to round up the size for the underlying allocators while > still unpoisioning the correct quantity of shadow memory. > > Adjust the other call-sites to pass in PAGE_SHIFT for the shift value. > > Cc: Nicholas Piggin <npiggin@gmail.com> > Cc: David Gow <davidgow@google.com> > Cc: Dmitry Vyukov <dvyukov@google.com> > Cc: Andrey Konovalov <andreyknvl@gmail.com> > Cc: Uladzislau Rezki (Sony) <urezki@gmail.com> > Link: https://bugzilla.kernel.org/show_bug.cgi?id=213335 > Fixes: 121e6f3258fe ("mm/vmalloc: hugepage vmalloc mappings") > Signed-off-by: Daniel Axtens <dja@axtens.net> > ---
This fixes the KUnit test failure I was seeing on x86_64, thanks!
Tested-by: David Gow <davidgow@google.com>
Cheers, -- David
| |