diff options
author | 2015-03-21 10:24:10 -0700 | |
---|---|---|
committer | 2015-03-21 10:24:10 -0700 | |
commit | 60ed380eb84d8be64c1ec0f91f619536457d084e (patch) | |
tree | f5ab3488478ee468563b1600101ebdea4e7d3362 /arch/arm64/kernel/efi.c | |
parent | Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm (diff) | |
parent | arm64: Honor __GFP_ZERO in dma allocations (diff) | |
download | linux-dev-60ed380eb84d8be64c1ec0f91f619536457d084e.tar.xz linux-dev-60ed380eb84d8be64c1ec0f91f619536457d084e.zip |
Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux
Pull arm64 fixes from Catalin Marinas:
- mm switching fix where the kernel pgd ends up in the user TTBR0 after
returning from an EFI run-time services call
- fix __GFP_ZERO handling for atomic pool and CMA DMA allocations (the
generic code does get the gfp flags, so it's left with the arch code
to memzero accordingly)
* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
arm64: Honor __GFP_ZERO in dma allocations
arm64: efi: don't restore TTBR0 if active_mm points at init_mm
Diffstat (limited to 'arch/arm64/kernel/efi.c')
-rw-r--r-- | arch/arm64/kernel/efi.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/arm64/kernel/efi.c b/arch/arm64/kernel/efi.c index 2b8d70164428..ab21e0d58278 100644 --- a/arch/arm64/kernel/efi.c +++ b/arch/arm64/kernel/efi.c @@ -337,7 +337,11 @@ core_initcall(arm64_dmi_init); static void efi_set_pgd(struct mm_struct *mm) { - cpu_switch_mm(mm->pgd, mm); + if (mm == &init_mm) + cpu_set_reserved_ttbr0(); + else + cpu_switch_mm(mm->pgd, mm); + flush_tlb_all(); if (icache_is_aivivt()) __flush_icache_all(); |