[PATCH v5] mm: huge-vmap: fail gracefully on unexpected huge vmap mappings
Andrew Morton
akpm at linux-foundation.org
Thu Jun 15 14:24:39 PDT 2017
On Fri, 9 Jun 2017 08:22:26 +0000 Ard Biesheuvel <ard.biesheuvel at linaro.org> wrote:
> Existing code that uses vmalloc_to_page() may assume that any
> address for which is_vmalloc_addr() returns true may be passed
> into vmalloc_to_page() to retrieve the associated struct page.
>
> This is not un unreasonable assumption to make, but on architectures
> that have CONFIG_HAVE_ARCH_HUGE_VMAP=y, it no longer holds, and we
> need to ensure that vmalloc_to_page() does not go off into the weeds
> trying to dereference huge PUDs or PMDs as table entries.
>
> Given that vmalloc() and vmap() themselves never create huge
> mappings or deal with compound pages at all, there is no correct
> answer in this case, so return NULL instead, and issue a warning.
Is this patch known to fix any current user-visible problem?
More information about the linux-arm-kernel
mailing list