From mboxrd@z Thu Jan 1 00:00:00 1970 From: catalin.marinas@arm.com (Catalin Marinas) Date: Mon, 15 Aug 2016 11:52:06 +0100 Subject: [kernel-hardening] [PATCH 0/7] arm64: Privileged Access Never using TTBR0_EL1 switching In-Reply-To: References: <20160815094842.GB22320@e104818-lin.cambridge.arm.com> <20160815095813.GA1996@svinekod> <20160815100649.GB1996@svinekod> <20160815103000.GE13262@arm.com> <20160815103721.GF13262@arm.com> Message-ID: <20160815105205.GD22320@e104818-lin.cambridge.arm.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Mon, Aug 15, 2016 at 12:43:31PM +0200, Ard Biesheuvel wrote: > But, how about we store the reserved ASID in TTBR1_EL1 instead, and > switch TCR_EL1.A1 and TCR_EL1.EPD0 in a single write? That way, we can > switch ASIDs and disable table walks atomically (I hope), and we > wouldn't need to change TTBR0_EL1 at all. I did this before for AArch32 + LPAE (patches on the list sometime last year I think). But the idea was nak'ed by the ARM architects. The TCR_EL1.A1 can be cached somewhere in the TLB state machine, so you need TLBI (IOW, toggling A1 does not guarantee an ASID switch). -- Catalin