diff options
| author | Dave Airlie <airlied@redhat.com> | 2018-01-18 09:32:15 +1000 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2018-01-18 09:32:15 +1000 |
| commit | 4a6cc7a44e98a0460bd094b68c75f0705fdc450a (patch) | |
| tree | b8c86a1e0342b1166ab52c4d79e404eede57abec /arch/x86/platform/efi/efi_64.c | |
| parent | 8563188e37b000979ab66521f4337df9a3453223 (diff) | |
| parent | a8750ddca918032d6349adbf9a4b6555e7db20da (diff) | |
| download | talos-op-linux-4a6cc7a44e98a0460bd094b68c75f0705fdc450a.tar.gz talos-op-linux-4a6cc7a44e98a0460bd094b68c75f0705fdc450a.zip | |
BackMerge tag 'v4.15-rc8' into drm-next
Linux 4.15-rc8
Daniel requested this for so the intel CI won't fall over on drm-next
so often.
Diffstat (limited to 'arch/x86/platform/efi/efi_64.c')
| -rw-r--r-- | arch/x86/platform/efi/efi_64.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c index 6a151ce70e86..2dd15e967c3f 100644 --- a/arch/x86/platform/efi/efi_64.c +++ b/arch/x86/platform/efi/efi_64.c @@ -135,7 +135,9 @@ pgd_t * __init efi_call_phys_prolog(void) pud[j] = *pud_offset(p4d_k, vaddr); } } + pgd_offset_k(pgd * PGDIR_SIZE)->pgd &= ~_PAGE_NX; } + out: __flush_tlb_all(); @@ -196,6 +198,9 @@ static pgd_t *efi_pgd; * because we want to avoid inserting EFI region mappings (EFI_VA_END * to EFI_VA_START) into the standard kernel page tables. Everything * else can be shared, see efi_sync_low_kernel_mappings(). + * + * We don't want the pgd on the pgd_list and cannot use pgd_alloc() for the + * allocation. */ int __init efi_alloc_page_tables(void) { @@ -208,7 +213,7 @@ int __init efi_alloc_page_tables(void) return 0; gfp_mask = GFP_KERNEL | __GFP_ZERO; - efi_pgd = (pgd_t *)__get_free_page(gfp_mask); + efi_pgd = (pgd_t *)__get_free_pages(gfp_mask, PGD_ALLOCATION_ORDER); if (!efi_pgd) return -ENOMEM; |

