• Anshuman Khandual's avatar
    arm64/mm: Validate hotplug range before creating linear mapping · 58284a90
    Anshuman Khandual authored
    During memory hotplug process, the linear mapping should not be created for
    a given memory range if that would fall outside the maximum allowed linear
    range. Else it might cause memory corruption in the kernel virtual space.
    
    Maximum linear mapping region is [PAGE_OFFSET..(PAGE_END -1)] accommodating
    both its ends but excluding PAGE_END. Max physical range that can be mapped
    inside this linear mapping range, must also be derived from its end points.
    
    This ensures that arch_add_memory() validates memory hot add range for its
    potential linear mapping requirements, before creating it with
    __create_pgd_mapping().
    
    Fixes: 4ab21506 ("arm64: Add memory hotplug support")
    Signed-off-by: default avatarAnshuman Khandual <anshuman.khandual@arm.com>
    Reviewed-by: default avatarArd Biesheuvel <ardb@kernel.org>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Will Deacon <will@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Ard Biesheuvel <ardb@kernel.org>
    Cc: Steven Price <steven.price@arm.com>
    Cc: Robin Murphy <robin.murphy@arm.com>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-kernel@vger.kernel.org
    Link: https://lore.kernel.org/r/1605252614-761-1-git-send-email-anshuman.khandual@arm.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
    58284a90
mmu.c 39.3 KB