You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
HAOC: Fix conflict between IEE and KPTI while modifying ASID
community inclusion
category: bugfix
--------------------------------
Fix 2 bugs:
Bug 1: Crash upon resume from suspend.
This issue occurred due to missing the proper use of the ISB (Instruction
Synchronization Barrier) instruction after writing to the TTBR0 register via
the IEE SIP interface. The absence of ISB prevented the modification from
immediately taking effect, causing errors in subsequent code accessing
addresses within the TTBR0 range. The problem was fixed by adding an ISB
instruction in the IEE SIP gate.
Bug 2: IEE ASID usage incompatible with KPTI.
When Kernel Page Table Isolation (KPTI) was enabled along with HAOC
initialization, conflicts in the Translation Lookaside Buffer (TLB) due to ASID
handling incompatibility led to hangs during initialization. To resolve this,
the modifications by IEE to the original ARM kernel ASID handling logic were
reverted. Now, the storage of the IEE ASID has been shifted from TTBR1 to
TTBR0, while the kernel continues to use TTBR1 to store user ASIDs.
Fixes: 6d2d4fa ("HAOC: Add support for AArch64 Isolated Execution Environment(IEE).")
Signed-off-by: Lyu Jinglin <lvjl2022@zgclab.edu.cn>
Signed-off-by: Liu Zhehui <liuzhh@zgclab.edu.cn>
0 commit comments