Author: markj
Date: Tue Oct 27 13:27:47 2020
New Revision: 367081
URL: https://svnweb.freebsd.org/changeset/base/367081

Log:
  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 <f...@www.zefox.net>
  Submitted by: alc
  MFC after:    1 week

Modified:
  head/sys/arm64/arm64/pmap.c

Modified: head/sys/arm64/arm64/pmap.c
==============================================================================
--- head/sys/arm64/arm64/pmap.c Tue Oct 27 13:13:04 2020        (r367080)
+++ head/sys/arm64/arm64/pmap.c Tue Oct 27 13:27:47 2020        (r367081)
@@ -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);
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to