diff options
author | simokawa <simokawa@FreeBSD.org> | 2008-05-10 13:40:42 +0000 |
---|---|---|
committer | simokawa <simokawa@FreeBSD.org> | 2008-05-10 13:40:42 +0000 |
commit | 8e75b5b7e4c299f0e2c5369b3476e648a1fa0488 (patch) | |
tree | 8150c5c18d1c83b92c2102350b6f7933034cd406 /sys/dev/firewire/firewire.c | |
parent | 9a39931e9b38b41d89ceff4cce90f53d0481fc8f (diff) | |
download | FreeBSD-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.c | 5 |
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); |