Re: [PATCH v2 1/4] usb: udc: add usb_gadget_find_udc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Peter Chen <peter.chen@xxxxxxxxxxxxx> writes:

> @@ -348,23 +356,14 @@ static void usb_gadget_remove_driver(struct usb_udc *udc)
>   */
>  void usb_del_gadget_udc(struct usb_gadget *gadget)
>  {
> -	struct usb_udc		*udc = NULL;
> -
> -	mutex_lock(&udc_lock);
> -	list_for_each_entry(udc, &udc_list, list)
> -		if (udc->gadget == gadget)
> -			goto found;
> -
> -	dev_err(gadget->dev.parent, "gadget not registered.\n");
> -	mutex_unlock(&udc_lock);
> +	struct usb_udc *udc = usb_gadget_find_udc(gadget);
>  
> -	return;
> +	if (!udc)
> +		return;
>  
> -found:
>  	dev_vdbg(gadget->dev.parent, "unregistering gadget\n");
>  
>  	list_del(&udc->list);
> -	mutex_unlock(&udc_lock);

I believe udc->list linkage to udc_list still should be protected with
udc_lock, otherwise this will race with usb_add_gadget_udc_release().

Regards,
--
Alex
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux