summaryrefslogtreecommitdiffstats
path: root/sys/dev/aic7xxx
diff options
context:
space:
mode:
authorscottl <scottl@FreeBSD.org>2007-07-31 20:11:03 +0000
committerscottl <scottl@FreeBSD.org>2007-07-31 20:11:03 +0000
commitddefa5d6f2b2250438861c18e617af3098c6fc21 (patch)
tree16ce1cff47e3d8e77fe20b5b52c15995162c007c /sys/dev/aic7xxx
parent7e771d27fb2effe15a14a1d8429f2ef93e3e1766 (diff)
downloadFreeBSD-src-ddefa5d6f2b2250438861c18e617af3098c6fc21.zip
FreeBSD-src-ddefa5d6f2b2250438861c18e617af3098c6fc21.tar.gz
Fix locking mistakes in the error recovery paths of the AHC and AHD drivers.
Approved by: re
Diffstat (limited to 'sys/dev/aic7xxx')
-rw-r--r--sys/dev/aic7xxx/aic7xxx.c2
-rw-r--r--sys/dev/aic7xxx/aic_osm_lib.c2
2 files changed, 0 insertions, 4 deletions
diff --git a/sys/dev/aic7xxx/aic7xxx.c b/sys/dev/aic7xxx/aic7xxx.c
index 659b4e8..8e88977 100644
--- a/sys/dev/aic7xxx/aic7xxx.c
+++ b/sys/dev/aic7xxx/aic7xxx.c
@@ -6932,7 +6932,6 @@ ahc_timeout(struct scb *scb)
struct ahc_softc *ahc;
ahc = scb->ahc_softc;
- ahc_lock(ahc);
if ((scb->flags & SCB_ACTIVE) != 0) {
if ((scb->flags & SCB_TIMEDOUT) == 0) {
LIST_INSERT_HEAD(&ahc->timedout_scbs, scb,
@@ -6941,7 +6940,6 @@ ahc_timeout(struct scb *scb)
}
ahc_wakeup_recovery_thread(ahc);
}
- ahc_unlock(ahc);
}
/*
diff --git a/sys/dev/aic7xxx/aic_osm_lib.c b/sys/dev/aic7xxx/aic_osm_lib.c
index e4128ec..78a7d56 100644
--- a/sys/dev/aic7xxx/aic_osm_lib.c
+++ b/sys/dev/aic7xxx/aic_osm_lib.c
@@ -120,9 +120,7 @@ aic_recovery_thread(void *arg)
if ((aic->flags & AIC_SHUTDOWN_RECOVERY) != 0)
break;
- aic_unlock(aic);
aic_recover_commands(aic);
- aic_lock(aic);
}
aic->platform_data->recovery_thread = NULL;
wakeup(aic->platform_data);
OpenPOWER on IntegriCloud