aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/firewire
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2011-06-21 03:07:59 +0000
committerWarner Losh <imp@FreeBSD.org>2011-06-21 03:07:59 +0000
commit24c02d2f9e4cb17e32735f0362453c74eafdb952 (patch)
tree32bf030c59381dc7a6863f8a6101bdd7c7a32fbb /sys/dev/firewire
parente6830016ad31a737c35a0f413a8f2b72187e6b2c (diff)
downloadsrc-24c02d2f9e4cb17e32735f0362453c74eafdb952.tar.gz
src-24c02d2f9e4cb17e32735f0362453c74eafdb952.zip
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.
Notes
Notes: svn path=/head/; revision=223353
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 cccbc8c76996..4b147b2ab139 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)