arm64: update ASID limit
authorJean-Philippe Brucker <jean-philippe.brucker@arm.com>
Fri, 17 Jun 2016 17:33:00 +0000 (18:33 +0100)
committerWill Deacon <will.deacon@arm.com>
Tue, 21 Jun 2016 19:10:18 +0000 (20:10 +0100)
commitf7e0efc9b50266f5317b50732efff98d40fc879a
treecdbf55c7e1202782c62e3377557564bb023499d8
parent33688abb2802ff3a230bd2441f765477b94cc89e
arm64: update ASID limit

During a rollover, we mark the active ASID on each CPU as reserved, before
allocating a new ID for the task that caused the rollover. This means that
with N CPUs, we can only guarantee the new task to obtain a valid ASID if
we have at least N+1 ASIDs. Update this limit in the initcall check.

Note that this restriction was introduced by commit 8e648066 on the
arch/arm side, which disallow re-using the previously active ASID on the
local CPU, as it would introduce a TLB race.

In addition, we only dispose of NUM_USER_ASIDS-1, since ASID 0 is
reserved. Add this restriction as well.

Signed-off-by: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm64/mm/context.c