On 06/19/2019 09:47 AM, Anshuman Khandual wrote:
> +#ifdef CONFIG_MEMORY_HOTPLUG
> +     /*
> +      * FIXME: We should have called remove_pagetable(start, end, true).
> +      * vmemmap and vmalloc virtual range might share intermediate kernel
> +      * page table entries. Removing vmemmap range page table pages here
> +      * can potentially conflict with a cuncurrent vmalloc() allocation.
> +      *
> +      * This is primarily because valloc() does not take init_mm ptl for
> +      * the entire page table walk and it's modification. Instead it just
> +      * takes the lock while allocating and installing page table pages
> +      * via [p4d|pud|pmd|pte]_aloc(). A cuncurrently vanishing page table
> +      * entry via memory hotremove can cause vmalloc() kernel page table
> +      * walk pointers to be invalid on the fly which can cause corruption
> +      * or worst, a crash.

There are couple of typos above which I will fix along with other reviews.

Reply via email to