linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] arm64: mm: use fully constructed struct pages from EFI page tables
@ 2016-07-22 17:32 Ard Biesheuvel
  2016-07-22 17:32 ` [PATCH 1/2] arm64: mm: make create_mapping_late() non-allocating Ard Biesheuvel
                   ` (4 more replies)
  0 siblings, 5 replies; 13+ messages in thread
From: Ard Biesheuvel @ 2016-07-22 17:32 UTC (permalink / raw)
  To: linux-arm-kernel

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

 arch/arm64/mm/mmu.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2016-07-25 17:14 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-07-22 17:32 [PATCH 0/2] arm64: mm: use fully constructed struct pages from EFI page tables Ard Biesheuvel
2016-07-22 17:32 ` [PATCH 1/2] arm64: mm: make create_mapping_late() non-allocating Ard Biesheuvel
2016-07-25 13:46   ` Mark Rutland
2016-07-25 14:10     ` Ard Biesheuvel
2016-07-25 14:22       ` Mark Rutland
2016-07-22 17:32 ` [PATCH 2/2] arm64: mm: run pgtable_page_ctor() on non-swapper translation table pages Ard Biesheuvel
2016-07-25 14:31   ` Suzuki K Poulose
2016-07-25 14:43     ` Suzuki K Poulose
2016-07-25 16:46       ` Catalin Marinas
2016-07-25 17:03         ` Suzuki K Poulose
2016-07-22 21:53 ` [PATCH 0/2] arm64: mm: use fully constructed struct pages from EFI page tables Laura Abbott
2016-07-25 13:48 ` Sudeep Holla
2016-07-25 17:14 ` Catalin Marinas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).