[PATCH v5 0/2] arm64: apply G-to-nG conversion for KPTI with MMU enabled
Ard Biesheuvel
ardb at kernel.org
Thu Jun 9 10:43:18 PDT 2022
Rationale for the series is in patch #2.
Changes since v4:
- fix two bugs in patch #2
Changes since v3 [0]:
- fix issue pointed out by Mark in patch #1, and add his Rb/Tb;
- move shared flag back into the ID map, as this allows us to revert to
the existing synchronization scheme, and drastically simplify the
patch - we can move the flag into a separate page later, if needed;
- use symbol alias to access __create_pgd_mapping() so we are not forced
to expose it in general.
Changes since v2 [1]:
- reinstate optimization that avoids descending into the same page
tables repeatedly when KASAN is enabled;
- use broadcast TLB maintenance when doing BBM for the temporary
mappings, to prevent potential TLB conflicts on the secondary cores
that are running from the same set of temporary page tables;
- remove a wait loop in the C code, by using 'num_cpus + 1' as the
signal value rather then 0x0;
- declutter and simplify the asm helper code, to make it more
maintainable.
Cc: will at kernel.org
Cc: maz at kernel.org
Cc: mark.rutland at arm.com
Cc: catalin.marinas at arm.com
Cc: keescook at chromium.org
[0] https://lore.kernel.org/linux-arm-kernel/20220421140339.1329019-1-ardb@kernel.org/
[1] https://lore.kernel.org/linux-arm-kernel/20220413121848.787565-1-ardb@kernel.org/
Ard Biesheuvel (2):
arm64: kpti-ng: simplify page table traversal logic
arm64: mm: install KPTI nG mappings with MMU enabled
arch/arm64/kernel/cpufeature.c | 54 +++++-
arch/arm64/mm/mmu.c | 7 +
arch/arm64/mm/proc.S | 173 ++++++++++----------
3 files changed, 145 insertions(+), 89 deletions(-)
--
2.30.2
More information about the linux-arm-kernel
mailing list