Hi all:
cpu_do_switch_mm is used to change user address space in arm64.
According to the code in https://elixir.bootlin.com/linux/v6.14.6/source/arch/arm64/mm/context.c#L349, it does so in three major steps:
(1) set ttbr0_el1 to reserved_ttbr0;
(2) change ASID in ttbr1_el1;
(3) set ttbr0_el1 to actual translation table base.
So, what is the purpose of setting ttbr0_el1 to reserved_ttbr0?
Thanks in advance!