On 16 November 2015 at 20:48, Russell King - ARM Linux
[off-list ref] wrote:
On Mon, Nov 16, 2015 at 08:04:00PM +0100, Ard Biesheuvel wrote:
quoted
OK. So you mean set TTBR to the zero page, perform the TLB flush and
only then switch to the new page tables?
Not quite.
If you have global mappings below TASK_SIZE, you would need this
sequence when switching either to or from the UEFI page tables:
- switch to another set of page tables which only map kernel space
with nothing at all in userspace.
- flush the TLB.
- switch to your target page tables.
Doh. I am so used to always having two TTBR's available, but indeed,
we shouldn't pull the rug from under our feet.
As I say in response to one of your other patches, it's probably
much easier to avoid any global mappings below TASK_SIZE.
Let me look into that.
Thanks,
Ard.