Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fbcd5655 authored by Will Deacon's avatar Will Deacon Committed by Amit Pundir
Browse files

UPSTREAM: arm64: switch_mm: simplify mm and CPU checks



switch_mm performs some checks to try and avoid entering the ASID
allocator:

  (1) If we're switching to the init_mm (no user mappings), then simply
      set a reserved TTBR0 value with no page table (the zero page)

  (2) If prev == next *and* the mm_cpumask indicates that we've run on
      this CPU before, then we can skip the allocator.

However, there is plenty of redundancy here. With the new ASID allocator,
if prev == next, then we know that our ASID is valid and do not need to
worry about re-allocation. Consequently, we can drop the mm_cpumask check
in (2) and move the prev == next check before the init_mm check, since
if prev == next == init_mm then there's nothing to do.

Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>

Bug: 31432001
Change-Id: Ic9b3a7dfc7bdb58977ab3c7e7531ca0d3bf6739d
(cherry picked from commit c2775b2ee5caca19f661ee2ab5af92462596db71)
Signed-off-by: default avatarSami Tolvanen <samitolvanen@google.com>
parent 5775076f
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment