Hi,
While testing an unrelated patch on the arm64 for-next/core branch, I spotted an issue in the ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD workaround. The first patch fixes that issue, and the second patch cleans up the remaining logic.
The issue has existed since the workaround was introduced in commit:
471470bc7052d28c ("arm64: errata: Add Cortex-A520 speculative unprivileged load workaround")
As that logic has recently been reworked in the arm64 for-next/core branch, these patches are based atop that rework, specifically atop commit:
546b7cde9b1dd360 ("arm64: Rename ARM64_WORKAROUND_2966298")
As the patches alter the KPTI exception return logic, I've given this testing with KPTI forced on, forced off, and disabled at build time, which all appear to be fine. I don't have any hardware requiring the ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD workaround, but as the resulting logic for this is very simple I do not expect any issues with that part of the logic.
Mark.
Mark Rutland (2): arm64: entry: fix ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD arm64: entry: simplify kernel_exit logic
arch/arm64/kernel/entry.S | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-)