Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 22 Dec 2019 20:04:35 +0000 (UTC)
From:      Ian Lepore <ian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org
Subject:   svn commit: r356023 - stable/12/sys/dev/iicbus
Message-ID:  <201912222004.xBMK4ZHO059625@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ian
Date: Sun Dec 22 20:04:35 2019
New Revision: 356023
URL: https://svnweb.freebsd.org/changeset/base/356023

Log:
  MFC r355688:
  
  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:
  stable/12/sys/dev/iicbus/iicbus.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/dev/iicbus/iicbus.c
==============================================================================
--- stable/12/sys/dev/iicbus/iicbus.c	Sun Dec 22 19:30:13 2019	(r356022)
+++ stable/12/sys/dev/iicbus/iicbus.c	Sun Dec 22 20:04:35 2019	(r356023)
@@ -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);
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201912222004.xBMK4ZHO059625>