summaryrefslogtreecommitdiffstats
path: root/sys/dev/firewire/firewire.c
diff options
context:
space:
mode:
authorsimokawa <simokawa@FreeBSD.org>2008-05-10 13:40:42 +0000
committersimokawa <simokawa@FreeBSD.org>2008-05-10 13:40:42 +0000
commit8e75b5b7e4c299f0e2c5369b3476e648a1fa0488 (patch)
tree8150c5c18d1c83b92c2102350b6f7933034cd406 /sys/dev/firewire/firewire.c
parent9a39931e9b38b41d89ceff4cce90f53d0481fc8f (diff)
downloadFreeBSD-src-8e75b5b7e4c299f0e2c5369b3476e648a1fa0488.zip
FreeBSD-src-8e75b5b7e4c299f0e2c5369b3476e648a1fa0488.tar.gz
- Fix panic on detach.
- Fix a comment. MFC after: 2 weeks
Diffstat (limited to 'sys/dev/firewire/firewire.c')
-rw-r--r--sys/dev/firewire/firewire.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/firewire/firewire.c b/sys/dev/firewire/firewire.c
index c7767da..25e0ed2 100644
--- a/sys/dev/firewire/firewire.c
+++ b/sys/dev/firewire/firewire.c
@@ -508,6 +508,9 @@ firewire_detach(device_t dev)
printf("firewire probe thread didn't die\n");
mtx_unlock(&fc->wait_lock);
+ if (fc->arq !=0 && fc->arq->maxq > 0)
+ fw_drain_txq(fc);
+
if ((err = fwdev_destroydev(sc)) != 0)
return err;
@@ -518,7 +521,7 @@ firewire_detach(device_t dev)
callout_stop(&fc->bmr_callout);
callout_stop(&fc->busprobe_callout);
- /* XXX xfree_free and untimeout on all xfers */
+ /* XXX xfer_free and untimeout on all xfers */
for (fwdev = STAILQ_FIRST(&fc->devices); fwdev != NULL;
fwdev = fwdev_next) {
fwdev_next = STAILQ_NEXT(fwdev, link);
OpenPOWER on IntegriCloud