diff options
author | imp <imp@FreeBSD.org> | 2011-06-21 03:07:59 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2011-06-21 03:07:59 +0000 |
commit | e42b865a6d703440347be5d80a4d97f4ec740c20 (patch) | |
tree | 32bf030c59381dc7a6863f8a6101bdd7c7a32fbb /sys/dev/firewire | |
parent | 6526fa0e237601c7b818b1178dad61b9b3d743b1 (diff) | |
download | FreeBSD-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.c | 5 |
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) |