DragonFly commits List (threaded) for 2012-03
git: DragonFly_RELEASE_3_0 kernel - Fix three AHCI bugs
Author: Matthew Dillon <firstname.lastname@example.org>
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