summaryrefslogtreecommitdiffstats
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
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.
-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