DragonFly commits List (threaded) for 2012-03
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
git: kernel - Fix three AHCI bugs
commit 3d102df7db4f442f9921757788d791d3ec0ebca0
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
held.
* 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(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/3d102df7db4f442f9921757788d791d3ec0ebca0
--
DragonFly BSD source repository
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]