DragonFly BSD
DragonFly commits List (threaded) for 2012-03
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: DragonFly_RELEASE_3_0 kernel - Fix three AHCI bugs

From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 29 Mar 2012 16:07:33 -0700 (PDT)

commit 5ec6adbc2e9fbe864a4eb1f2756d85ecb7880b94
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Thu Mar 22 21:31:31 2012 -0700

    kernel - Fix three AHCI bugs
    * This fixes spurious timeouts which occur on SMP boxes with faster devices
      (such as SSDs or more recent hard drives)
    * The global interrupt status register appears to be latched on some parts
      rather than wire-or.  Clearing it after signaling the port threads or
      processing the interrupt can cause interrupts to be lost.
    * In cases where it is actually wire-or we may get a double-interrupt,
      but stability is more important here.
    * Fix the port signaling code.  The mask was being cleared with the
      port interlock released.  It has to be cleared when the interlock is
    * Reorder the per-port interrupt status register clearing code in two
      places to execute before processing the operation rather than after,
      which may fix another source of lost interrupts.

Summary of changes:
 sys/dev/disk/ahci/ahci.c           |   24 ++++++++++++++++--------
 sys/dev/disk/ahci/ahci_dragonfly.c |    8 ++++----
 2 files changed, 20 insertions(+), 12 deletions(-)


DragonFly BSD source repository

[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]