summaryrefslogtreecommitdiffstats
path: root/sys/dev/firewire
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2011-06-21 03:07:59 +0000
committerimp <imp@FreeBSD.org>2011-06-21 03:07:59 +0000
commite42b865a6d703440347be5d80a4d97f4ec740c20 (patch)
tree32bf030c59381dc7a6863f8a6101bdd7c7a32fbb /sys/dev/firewire
parent6526fa0e237601c7b818b1178dad61b9b3d743b1 (diff)
downloadFreeBSD-src-e42b865a6d703440347be5d80a4d97f4ec740c20.zip
FreeBSD-src-e42b865a6d703440347be5d80a4d97f4ec740c20.tar.gz
When we see an interrupt status of 0xffffffff, check to see if the
child is still present. If not, return 'handled' and don't print anything (this is expected behavior). We expect an interrupt on eject, power-down and/or shutdown.
Diffstat (limited to 'sys/dev/firewire')
-rw-r--r--sys/dev/firewire/fwohci.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/dev/firewire/fwohci.c b/sys/dev/firewire/fwohci.c
index cccbc8c..4b147b2 100644
--- a/sys/dev/firewire/fwohci.c
+++ b/sys/dev/firewire/fwohci.c
@@ -2072,8 +2072,9 @@ fwohci_check_stat(struct fwohci_softc *sc)
FW_GLOCK_ASSERT(&sc->fc);
stat = OREAD(sc, FWOHCI_INTSTAT);
if (stat == 0xffffffff) {
- device_printf(sc->fc.dev,
- "device physically ejected?\n");
+ if (!bus_child_present(sc->fc.dev))
+ return (FILTER_HANDLED);
+ device_printf(sc->fc.dev, "device physically ejected?\n");
return (FILTER_STRAY);
}
if (stat)
OpenPOWER on IntegriCloud