svn commit: r197165 - in head/sys: kern sys
Scott Long
scottl at samsco.org
Sun Sep 13 23:52:08 UTC 2009
Are we just just giving up on this for now? Also, I would have liked
to have known that this was coming.
Scott
On Sep 13, 2009, at 9:08 AM, Attilio Rao wrote:
> Author: attilio
> Date: Sun Sep 13 15:08:19 2009
> New Revision: 197165
> URL: http://svn.freebsd.org/changeset/base/197165
>
> Log:
> Revert r196779 in order to implement a different scheme for newbus
> locking
> methodology.
>
> Requested by: imp
>
> Modified:
> head/sys/kern/subr_bus.c
> head/sys/sys/bus.h
>
> Modified: head/sys/kern/subr_bus.c
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- head/sys/kern/subr_bus.c Sun Sep 13 14:47:31 2009 (r197164)
> +++ head/sys/kern/subr_bus.c Sun Sep 13 15:08:19 2009 (r197165)
> @@ -2625,16 +2625,10 @@ device_attach(device_t dev)
> {
> int error;
>
> - if (dev->state >= DS_ATTACHING)
> - return (0);
> device_sysctl_init(dev);
> if (!device_is_quiet(dev))
> device_print_child(dev->parent, dev);
> - dev->state = DS_ATTACHING;
> if ((error = DEVICE_ATTACH(dev)) != 0) {
> - KASSERT(dev->state == DS_ATTACHING,
> - ("%s: %p device state must not been changing", __func__,
> - dev));
> printf("device_attach: %s%d attach returned %d\n",
> dev->driver->name, dev->unit, error);
> /* Unset the class; set in device_probe_child */
> @@ -2645,8 +2639,6 @@ device_attach(device_t dev)
> dev->state = DS_NOTPRESENT;
> return (error);
> }
> - KASSERT(dev->state == DS_ATTACHING,
> - ("%s: %p device state must not been changing", __func__, dev));
> device_sysctl_update(dev);
> dev->state = DS_ATTACHED;
> devadded(dev);
> @@ -2682,16 +2674,8 @@ device_detach(device_t dev)
> if (dev->state != DS_ATTACHED)
> return (0);
>
> - dev->state = DS_DETACHING;
> - if ((error = DEVICE_DETACH(dev)) != 0) {
> - KASSERT(dev->state == DS_DETACHING,
> - ("%s: %p device state must not been changing", __func__,
> - dev));
> - dev->state = DS_ATTACHED;
> + if ((error = DEVICE_DETACH(dev)) != 0)
> return (error);
> - }
> - KASSERT(dev->state == DS_DETACHING,
> - ("%s: %p device state must not been changing", __func__, dev));
> devremoved(dev);
> if (!device_is_quiet(dev))
> device_printf(dev, "detached\n");
> @@ -2746,7 +2730,7 @@ device_quiesce(device_t dev)
> int
> device_shutdown(device_t dev)
> {
> - if (dev->state < DS_ATTACHED || dev->state == DS_DETACHING)
> + if (dev->state < DS_ATTACHED)
> return (0);
> return (DEVICE_SHUTDOWN(dev));
> }
>
> Modified: head/sys/sys/bus.h
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- head/sys/sys/bus.h Sun Sep 13 14:47:31 2009 (r197164)
> +++ head/sys/sys/bus.h Sun Sep 13 15:08:19 2009 (r197165)
> @@ -52,11 +52,8 @@ struct u_businfo {
> typedef enum device_state {
> DS_NOTPRESENT, /**< @brief not probed or probe failed */
> DS_ALIVE, /**< @brief probe succeeded */
> - DS_ATTACHING, /**< @brief attaching is in progress */
> DS_ATTACHED, /**< @brief attach method called */
> - DS_BUSY, /**< @brief device is open */
> - DS_DETACHING /**< @brief detaching is in progress */
> -
> + DS_BUSY /**< @brief device is open */
> } device_state_t;
>
> /**
More information about the svn-src-head
mailing list