svn commit: r227701 - in head/sys: arm/xscale/ixp425 dev/ahci
dev/ata dev/gpio dev/mvs dev/ppbus dev/ppc dev/siba dev/siis
dev/usb kern sys
John Baldwin
jhb at freebsd.org
Mon Nov 21 16:16:49 UTC 2011
On Saturday, November 19, 2011 5:11:51 am Hans Petter Selasky wrote:
> Author: hselasky
> Date: Sat Nov 19 10:11:50 2011
> New Revision: 227701
> URL: http://svn.freebsd.org/changeset/base/227701
>
> Log:
> Move the device_delete_all_children() function from usb_util.c
> to kern/subr_bus.c. Simplify this function so that it no longer
> depends on malloc() to execute. Identify a few other places where
> it makes sense to use device_delete_all_children().
>
> MFC after: 1 week
Sorry I didn't review this earlier when you sent it to me. In general I
think this is a good idea, and reducing the duplicated code is great. One
style nit below:
> Modified: head/sys/kern/subr_bus.c
> ==============================================================================
> --- head/sys/kern/subr_bus.c Sat Nov 19 09:16:52 2011 (r227700)
> +++ head/sys/kern/subr_bus.c Sat Nov 19 10:11:50 2011 (r227701)
> @@ -1881,6 +1881,39 @@ device_delete_child(device_t dev, device
> }
>
> /**
> + * @brief Delete all children devices of the given device, if any.
> + *
> + * This function deletes all children devices of the given device, if
> + * any, using the device_delete_child() function for each device it
> + * finds. If a child device cannot be deleted, this function will
> + * return an error code.
> + *
> + * @param dev the parent device
> + *
> + * @retval 0 success
> + * @retval non-zero a device would not detach
> + */
> +int
> +device_delete_all_children(device_t dev)
> +{
> + device_t child;
> + int error;
> +
> + PDEBUG(("Deleting all children of %s", DEVICENAME(dev)));
> +
> + error = 0;
> +
> + while ( (child = TAILQ_FIRST(&dev->children)) ) {
Can you fix the extra whitespace here and explicitly test against NULL?
> + error = device_delete_child(dev, child);
> + if (error) {
> + PDEBUG(("Failed deleting %s", DEVICENAME(child)));
> + break;
> + }
> + }
> + return (error);
> +}
> +
> +/**
> * @brief Find a device given a unit number
> *
> * This is similar to devclass_get_devices() but only searches for
>
--
John Baldwin
More information about the svn-src-head
mailing list