Re: [PATCHv2] usb: gadget: eem: fix echo command processing

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

 



On Tue, Apr 05, 2011 at 04:55:25PM +0300, yauheni.kaliuta@xxxxxxxxx wrote:
> From: Yauheni Kaliuta <yauheni.kaliuta@xxxxxxxxx>
> 
> During processing of bunch of eem frames if "echo" command is found
> skb is cloned and the cloned version should be used to send reply.
> Unfortunately, the data of the original skb were actually used and
> the cloned skb is never freed.
> 
> Using the cloned skb and freeing the skb in the completion callback
> for usb request.
> 
> Signed-off-by: Yauheni Kaliuta <yauheni.kaliuta@xxxxxxxxx>

looks good to me:

Reviewed-by: Felipe Balbi <balbi@xxxxxx>

> ---
> 
> v2
> - fix typo
> 
> ---
>  drivers/usb/gadget/f_eem.c |    8 ++++++--
>  1 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/usb/gadget/f_eem.c b/drivers/usb/gadget/f_eem.c
> index 95dd466..b3c3042 100644
> --- a/drivers/usb/gadget/f_eem.c
> +++ b/drivers/usb/gadget/f_eem.c
> @@ -314,6 +314,9 @@ eem_unbind(struct usb_configuration *c, struct usb_function *f)
>  
>  static void eem_cmd_complete(struct usb_ep *ep, struct usb_request *req)
>  {
> +	struct sk_buff *skb = (struct sk_buff *)req->context;
> +
> +	dev_kfree_skb_any(skb);
>  }
>  
>  /*
> @@ -428,10 +431,11 @@ static int eem_unwrap(struct gether *port,
>  				skb_trim(skb2, len);
>  				put_unaligned_le16(BIT(15) | BIT(11) | len,
>  							skb_push(skb2, 2));
> -				skb_copy_bits(skb, 0, req->buf, skb->len);
> -				req->length = skb->len;
> +				skb_copy_bits(skb2, 0, req->buf, skb2->len);
> +				req->length = skb2->len;
>  				req->complete = eem_cmd_complete;
>  				req->zero = 1;
> +				req->context = skb2;
>  				if (usb_ep_queue(port->in_ep, req, GFP_ATOMIC))
>  					DBG(cdev, "echo response queue fail\n");
>  				break;
> -- 
> 1.7.4.1
> 
> --
> 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

-- 
balbi
--
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