git: kernel - Fix spinlock bug introduced with windowing

Matthew Dillon dillon at
Wed May 2 10:23:27 PDT 2018

commit c5cfe2c8a9e60978d4b0e30340f4cbb1ba1bb5d3
Author: Matthew Dillon <dillon at>
Date:   Wed May 2 10:19:01 2018 -0700

    kernel - Fix spinlock bug introduced with windowing
    * The exclusive spinlock contention code was improperly assuming that
      non-zero EXCLWAIT bits prevented the SHARED bit from being set.  This
      is no longer true, shared locks can sometimes override EXCLWAIT.
      This assumption could result in spin_lock() returning with a shared
      lock instead of an exclusive lock.
    * Fixed by ensuring that the SHARED bit is cleared when resolving the
      contended exclusive lock.
    * Should hopefully fix the pmap pv == NULL assertion.
    Reported-by: dillon, zrj

Summary of changes:
 sys/kern/kern_spinlock.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

DragonFly BSD source repository

More information about the Commits mailing list