On Thu, Jul 19, 2012 at 7:10 PM, Sebastian Andrzej Siewior
<[email protected]> wrote:
> We used earlier to check for ep->ep.desc to figure out if this ep is
> already enabled and if so, abort.
> Ido Shayevitz removed the usb_endpoint_descriptor from private udc
> structure 5a6506f00 ("usb: gadget: Update at91_udc to use
> usb_endpoint_descriptor inside the struct usb_ep") but did not fix up
> the ep_enable condition because _now_ the member is always true and we
> can't check if this ep is enabled twice.
>
> Cc: Ido Shayevitz <[email protected]>
> Signed-off-by: Sebastian Andrzej Siewior <[email protected]>
> ---
>  drivers/usb/gadget/at91_udc.c |    4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/drivers/usb/gadget/at91_udc.c b/drivers/usb/gadget/at91_udc.c
> index 5fd61e2..22865dd 100644
> --- a/drivers/usb/gadget/at91_udc.c
> +++ b/drivers/usb/gadget/at91_udc.c
> @@ -475,8 +475,7 @@ static int at91_ep_enable(struct usb_ep *_ep,
>         unsigned long   flags;
>
>         if (!_ep || !ep
> -                       || !desc || ep->ep.desc
> -                       || _ep->name == ep0name
> +                       || !desc || _ep->name == ep0name
>                         || desc->bDescriptorType != USB_DT_ENDPOINT
>                         || (maxpacket = usb_endpoint_maxp(desc)) == 0
>                         || maxpacket > ep->maxpacket) {
> @@ -530,7 +529,6 @@ ok:
>         tmp |= AT91_UDP_EPEDS;
>         __raw_writel(tmp, ep->creg);
>
> -       ep->ep.desc = desc;
>         ep->ep.maxpacket = maxpacket;
>
>         /*
> --
> 1.7.10.4
>

Now the driver works fine.

Tested-by: Fabio Porcedda <[email protected]>

Regards
-- 
Fabio Porcedda
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to