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
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to