Author: landonf
Date: Sat Dec  2 00:52:59 2017
New Revision: 326450
URL: https://svnweb.freebsd.org/changeset/base/326450

Log:
  bhnd_chipc(4): Break cyclic references to the ChipCommon device
  
  bhnd_chipc's children may hold strong provider references to their parent;
  we must detach any children before attempting to deregister the bhnd_chipc
  device as a bus service provider.
  
  Approved by:  adrian (mentor, implicit)
  Sponsored by: The FreeBSD Foundation

Modified:
  head/sys/dev/bhnd/cores/chipc/chipc.c

Modified: head/sys/dev/bhnd/cores/chipc/chipc.c
==============================================================================
--- head/sys/dev/bhnd/cores/chipc/chipc.c       Sat Dec  2 00:09:58 2017        
(r326449)
+++ head/sys/dev/bhnd/cores/chipc/chipc.c       Sat Dec  2 00:52:59 2017        
(r326450)
@@ -245,10 +245,10 @@ chipc_detach(device_t dev)
 
        sc = device_get_softc(dev);
 
-       if ((error = bhnd_deregister_provider(dev, BHND_SERVICE_ANY)))
+       if ((error = bus_generic_detach(dev)))
                return (error);
 
-       if ((error = bus_generic_detach(dev)))
+       if ((error = bhnd_deregister_provider(dev, BHND_SERVICE_ANY)))
                return (error);
 
        chipc_release_region(sc, sc->core_region, RF_ALLOCATED|RF_ACTIVE);
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to