git: kernel - Fix boot-time panic in NATA revealed by new callout mechanics
    Matthew Dillon 
    dillon at crater.dragonflybsd.org
       
    Tue Nov 25 14:13:26 PST 2014
    
    
  
commit 15bd3c7353c5ce02776849ca16be00d5088d8734
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Tue Nov 25 14:11:42 2014 -0800
    kernel - Fix boot-time panic in NATA revealed by new callout mechanics
    
    * The NATA driver was using spin locks in a very, very dangerous way.
      They did not play nice with the new blocking callout mechanism.
    
    * Replace all of NATAs spinlocks with lockmgr locks.  In addition, change
      all asynchronous callout_stop() calls to synchronous callout_stop_sync()
      calls, and use callout_init_lk() to auto-lock ch->state_lock for the
      callback, which fixes a long-time deadlock race.
    
    Reported-by: tuxillo
Summary of changes:
 sys/dev/disk/nata/ata-all.c      | 35 +++++++++--------
 sys/dev/disk/nata/ata-all.h      |  9 ++---
 sys/dev/disk/nata/ata-chipset.c  | 38 +++++++++----------
 sys/dev/disk/nata/ata-lowlevel.c |  2 +-
 sys/dev/disk/nata/ata-queue.c    | 81 ++++++++++++++++++++--------------------
 sys/dev/disk/nata/ata-raid.c     | 22 +++++------
 sys/dev/disk/nata/ata-raid.h     |  4 +-
 sys/dev/disk/nata/atapi-cam.c    | 44 +++++++++++-----------
 8 files changed, 114 insertions(+), 121 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/15bd3c7353c5ce02776849ca16be00d5088d8734
-- 
DragonFly BSD source repository
    
    
More information about the Commits
mailing list