git: kernel - Fix lockmgr non-zero exclusive count panic

Matthew Dillon dillon at crater.dragonflybsd.org
Wed Dec 29 00:37:40 PST 2010


commit 7a4c56501df11e04efafe58591214c5806606c25
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Wed Dec 29 00:32:27 2010 -0800

    kernel - Fix lockmgr non-zero exclusive count panic
    
    * The vm_map lock uses shared & exclusive locks and tries to upgrade
      shared to exclusive.  There is a race where a shared upgrade can
      steal an exclusive lock from an exclusive request which has already
      acquired the LK_WANT_EXCL flag.
    
    * Deal with the case by having the exclusive lock also acquire
      LK_HAVE_EXCL to catch any shared upgrades which beat out the
      request.
    
    Reported-by: YONETANI Tomokazu <qhwt.dfly at les.ath.cx>
    Researched-by: YONETANI Tomokazu <qhwt.dfly at les.ath.cx>

Summary of changes:
 sys/kern/kern_lock.c |   24 ++++++++++++++++++------
 1 files changed, 18 insertions(+), 6 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/7a4c56501df11e04efafe58591214c5806606c25


-- 
DragonFly BSD source repository





More information about the Commits mailing list