Re: [PATCH 05/23] x86, kaiser: unmap kernel from userspace page tables (core patch)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 01/05/2018 11:17 AM, Jiri Kosina wrote:
> On Fri, 5 Jan 2018, Dave Hansen 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?
> 
> That's because pgd_populate() uses _PAGE_TABLE and not _KERNPG_TABLE for 
> reasons that are behind me.
> 
> I did put this on my TODO list, but for later.
> 
> (and yes, I tried clearing _PAGE_USER from init_mm's PGD, and no obvious 
> breakages appeared, but I wanted to give it more thought later).

Feel free to add my Ack on this.  I'd personally much rather muck with
random relatively unused bits of the efi code than touch the core PGD code.

We need to go look at it again in the 4.16 timeframe, probably.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]
  Powered by Linux