Author: imp
Date: Fri Jul 24 04:56:46 2015
New Revision: 285833
URL: https://svnweb.freebsd.org/changeset/base/285833

Log:
  Panic when a device is trying to recursively acquire rather than hang
  indefinitely. Improve error messages from other panics.

Modified:
  head/sys/dev/gpio/gpiobus.c

Modified: head/sys/dev/gpio/gpiobus.c
==============================================================================
--- head/sys/dev/gpio/gpiobus.c Thu Jul 23 23:37:03 2015        (r285832)
+++ head/sys/dev/gpio/gpiobus.c Fri Jul 24 04:56:46 2015        (r285833)
@@ -564,6 +564,10 @@ gpiobus_acquire_bus(device_t busdev, dev
        GPIOBUS_ASSERT_UNLOCKED(sc);
        GPIOBUS_LOCK(sc);
        if (sc->sc_owner != NULL) {
+               if (sc->sc_owner == child)
+                       panic("%s: %s still owns the bus.",
+                           device_get_nameunit(busdev),
+                           device_get_nameunit(child));
                if (how == GPIOBUS_DONTWAIT) {
                        GPIOBUS_UNLOCK(sc);
                        return (EWOULDBLOCK);
@@ -586,9 +590,14 @@ gpiobus_release_bus(device_t busdev, dev
        GPIOBUS_ASSERT_UNLOCKED(sc);
        GPIOBUS_LOCK(sc);
        if (sc->sc_owner == NULL)
-               panic("gpiobus: releasing unowned bus.");
+               panic("%s: %s releasing unowned bus.",
+                   device_get_nameunit(busdev),
+                   device_get_nameunit(child));
        if (sc->sc_owner != child)
-               panic("gpiobus: you don't own the bus. game over.");
+               panic("%s: %s trying to release bus owned by %s",
+                   device_get_nameunit(busdev),
+                   device_get_nameunit(child),
+                   device_get_nameunit(sc->sc_owner));
        sc->sc_owner = NULL;
        wakeup(sc);
        GPIOBUS_UNLOCK(sc);
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to