On 01/05/2018 10:19 AM, Jiri Kosina wrote:
> --- a/arch/x86/platform/efi/efi_64.c
> +++ b/arch/x86/platform/efi/efi_64.c
> @@ -95,6 +95,12 @@ pgd_t * __init efi_call_phys_prolog(void
>               save_pgd[pgd] = *pgd_offset_k(pgd * PGDIR_SIZE);
>               vaddress = (unsigned long)__va(pgd * PGDIR_SIZE);
>               set_pgd(pgd_offset_k(pgd * PGDIR_SIZE), 
> *pgd_offset_k(vaddress));
> +             /*
> +              * pgprot API doesn't clear it for PGD
> +              *
> +              * Will be brought back automatically in _epilog()
> +              */
> +             pgd_offset_k(pgd * PGDIR_SIZE)->pgd &= ~_PAGE_NX;
>       }
>       __flush_tlb_all();

Wait a sec...  Where does the _PAGE_USER come from?  Shouldn't we see
the &init_mm in there and *not* set _PAGE_USER?

Reply via email to