diff options
author | Will Deacon <[email protected]> | 2021-08-06 12:31:04 +0100 |
---|---|---|
committer | Catalin Marinas <[email protected]> | 2021-08-06 13:52:03 +0100 |
commit | 5e10f9887ed85d4f59266d5c60dd09be96b5dbd4 (patch) | |
tree | ff4dcc17684744bb95c253fb15f20d9b7c44e2b0 /net/lapb/lapb_timer.c | |
parent | ede3241a5f235811b1e66f56cf8fbdfd01266efb (diff) |
arm64: mm: Fix TLBI vs ASID rollover
When switching to an 'mm_struct' for the first time following an ASID
rollover, a new ASID may be allocated and assigned to 'mm->context.id'.
This reassignment can happen concurrently with other operations on the
mm, such as unmapping pages and subsequently issuing TLB invalidation.
Consequently, we need to ensure that (a) accesses to 'mm->context.id'
are atomic and (b) all page-table updates made prior to a TLBI using the
old ASID are guaranteed to be visible to CPUs running with the new ASID.
This was found by inspection after reviewing the VMID changes from
Shameer but it looks like a real (yet hard to hit) bug.
Cc: <[email protected]>
Cc: Marc Zyngier <[email protected]>
Cc: Jade Alglave <[email protected]>
Cc: Shameer Kolothum <[email protected]>
Signed-off-by: Will Deacon <[email protected]>
Reviewed-by: Catalin Marinas <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Catalin Marinas <[email protected]>
Diffstat (limited to 'net/lapb/lapb_timer.c')
0 files changed, 0 insertions, 0 deletions