From mboxrd@z Thu Jan 1 00:00:00 1970 From: labbott@redhat.com (Laura Abbott) Date: Fri, 22 Jul 2016 14:53:01 -0700 Subject: [PATCH 0/2] arm64: mm: use fully constructed struct pages from EFI page tables In-Reply-To: <1469208745-6693-1-git-send-email-ard.biesheuvel@linaro.org> References: <1469208745-6693-1-git-send-email-ard.biesheuvel@linaro.org> Message-ID: <522054e9-1cd2-c7df-99ab-aeeb5ff05ade@redhat.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 07/22/2016 10:32 AM, 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 > > arch/arm64/mm/mmu.c | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > Reviewed-by: Laura Abbott