svn commit: r355688 - head/sys/dev/iicbus
Ian Lepore
ian at FreeBSD.org
Fri Dec 13 02:20:27 UTC 2019
Author: ian
Date: Fri Dec 13 02:20:26 2019
New Revision: 355688
URL: https://svnweb.freebsd.org/changeset/base/355688
Log:
If device_delete_children() returns an error, bail on the rest of the
detach work and return the error. Especially don't call iicbus_reset()
since the most likely cause of failing to detach children is that one
of them has IO in progress.
Modified:
head/sys/dev/iicbus/iicbus.c
Modified: head/sys/dev/iicbus/iicbus.c
==============================================================================
--- head/sys/dev/iicbus/iicbus.c Fri Dec 13 02:18:44 2019 (r355687)
+++ head/sys/dev/iicbus/iicbus.c Fri Dec 13 02:20:26 2019 (r355688)
@@ -134,10 +134,11 @@ static int
iicbus_detach(device_t dev)
{
struct iicbus_softc *sc = IICBUS_SOFTC(dev);
+ int err;
+ if ((err = device_delete_children(dev)) != 0)
+ return (err);
iicbus_reset(dev, IIC_FASTEST, 0, NULL);
- bus_generic_detach(dev);
- device_delete_children(dev);
mtx_destroy(&sc->lock);
return (0);
}
More information about the svn-src-all
mailing list