git: kernel - Fix spinlock bug introduced with windowing

Matthew Dillon dillon at crater.dragonflybsd.org
Wed May 2 10:23:27 PDT 2018


commit c5cfe2c8a9e60978d4b0e30340f4cbb1ba1bb5d3
Author: Matthew Dillon <dillon at apollo.backplane.com>
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(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/c5cfe2c8a9e60978d4b0e30340f4cbb1ba1bb5d3


-- 
DragonFly BSD source repository



More information about the Commits mailing list