diff options
author | Mark Johnston <markj@FreeBSD.org> | 2020-10-27 13:27:47 +0000 |
---|---|---|
committer | Mark Johnston <markj@FreeBSD.org> | 2020-10-27 13:27:47 +0000 |
commit | 49721798e30ed481a7b3aa5bc3034e2bbde7843f (patch) | |
tree | 434b7f951d00db4f98f31e88909f25aa1e62953a /sys | |
parent | 866b1f5147341a0311904bff6fa1391adef67c2b (diff) | |
download | src-49721798e30ed481a7b3aa5bc3034e2bbde7843f.tar.gz src-49721798e30ed481a7b3aa5bc3034e2bbde7843f.zip |
arm64: Remove a racy KASSERT from pmap_remove_pages()
PCPU_GET(curpmap) expands to multiple instructions on arm64, and if the
current thread is migrated in between execution of those instructions, a
stale value may be used in the assertion condition.
Diagnosed by: mmel
Reported by: mmel, Bob Prohaska <fbsd@www.zefox.net>
Submitted by: alc
MFC after: 1 week
Notes
Notes:
svn path=/head/; revision=367081
Diffstat (limited to 'sys')
-rw-r--r-- | sys/arm64/arm64/pmap.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/sys/arm64/arm64/pmap.c b/sys/arm64/arm64/pmap.c index 284f00b3cc0d..6c3a7ffa15ef 100644 --- a/sys/arm64/arm64/pmap.c +++ b/sys/arm64/arm64/pmap.c @@ -4838,8 +4838,6 @@ pmap_remove_pages(pmap_t pmap) int allfree, field, freed, idx, lvl; vm_paddr_t pa; - KASSERT(pmap == PCPU_GET(curpmap), ("non-current pmap %p", pmap)); - lock = NULL; SLIST_INIT(&free); |