[PATCH 0/2] arm64: mm: use fully constructed struct pages from EFI page tables

Catalin Marinas catalin.marinas at arm.com
Mon Jul 25 10:14:42 PDT 2016


On Fri, Jul 22, 2016 at 07:32:23PM +0200, Ard Biesheuvel wrote:
> As reported by Sudeep, the EFI memory attributes table handling may crash
> on an uninitialized spinlock in the struct page associated with a UEFI runtime
> translation table page.
> 
> This is caused by a failure to take into account the fact that generic code
> treats such pages differently depending on whether they are associated with
> init_mm or not. The EFI page tables are completely separate from both the
> kernel and the userland mappings, and are completely static during the
> lifetime of the OS, but still, the most robust solution is to simply
> construct these pages fully, so that generic code that compares against
> &init_mm can work safely and correctly.
> 
> Patch #1 is a preparatory patch to drop a reference to late_pgtable_alloc
> from code that no longer needs it.
> 
> Patch #2 renamed late_pgtable_alloc to pgd_table_alloc, and updates it to
> construct the struct page associated with the allocated page.
> 
> Ard Biesheuvel (2):
>   arm64: mm: make create_mapping_late() non-allocating
>   arm64: mm: run pgtable_page_ctor() on non-swapper translation table
>     pages

Patches applied. I'll send them with the 4.8 pull request this week.

Thanks.

-- 
Catalin



More information about the linux-arm-kernel mailing list