Re: [PATCH] Staging: usbip: Use local pointer to reference urb in stub_recv_cmd_submit

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

 



Hi Tobias, 

於 四,2011-06-16 於 13:38 +0200,Tobias Klauser 提到:
> Use a local pointer to reference the urb instead of dereferencing the
> priv->urb member all over the function.
> 

What's the benefit for use local pointer to instead of priv->urb? Does
it for coding style?


Thank's
Joey Lee

> Signed-off-by: Tobias Klauser <tklauser@xxxxxxxxxx>
> ---
>  drivers/staging/usbip/stub_rx.c |   44 +++++++++++++++++++-------------------
>  1 files changed, 22 insertions(+), 22 deletions(-)
> 
> diff --git a/drivers/staging/usbip/stub_rx.c b/drivers/staging/usbip/stub_rx.c
> index 538fb9e..8d40e5e 100644
> --- a/drivers/staging/usbip/stub_rx.c
> +++ b/drivers/staging/usbip/stub_rx.c
> @@ -469,6 +469,7 @@ static void stub_recv_cmd_submit(struct stub_device *sdev,
>  {
>  	int ret;
>  	struct stub_priv *priv;
> +	struct urb *urb;
>  	struct usbip_device *ud = &sdev->ud;
>  	struct usb_device *udev = sdev->udev;
>  	int pipe = get_pipe(sdev, pdu->base.ep, pdu->base.direction);
> @@ -479,12 +480,14 @@ static void stub_recv_cmd_submit(struct stub_device *sdev,
>  
>  	/* setup a urb */
>  	if (usb_pipeisoc(pipe))
> -		priv->urb = usb_alloc_urb(pdu->u.cmd_submit.number_of_packets,
> -					  GFP_KERNEL);
> +		urb = usb_alloc_urb(pdu->u.cmd_submit.number_of_packets,
> +				    GFP_KERNEL);
>  	else
> -		priv->urb = usb_alloc_urb(0, GFP_KERNEL);
> +		urb = usb_alloc_urb(0, GFP_KERNEL);
>  
> -	if (!priv->urb) {
> +	priv->urb = urb;
> +
> +	if (!urb) {
>  		dev_err(&sdev->interface->dev, "malloc urb\n");
>  		usbip_event_add(ud, SDEV_EVENT_ERROR_MALLOC);
>  		return;
> @@ -492,10 +495,10 @@ static void stub_recv_cmd_submit(struct stub_device *sdev,
>  
>  	/* set priv->urb->transfer_buffer */
>  	if (pdu->u.cmd_submit.transfer_buffer_length > 0) {
> -		priv->urb->transfer_buffer =
> +		urb->transfer_buffer =
>  			kzalloc(pdu->u.cmd_submit.transfer_buffer_length,
>  				GFP_KERNEL);
> -		if (!priv->urb->transfer_buffer) {
> +		if (!urb->transfer_buffer) {
>  			dev_err(&sdev->interface->dev, "malloc x_buff\n");
>  			usbip_event_add(ud, SDEV_EVENT_ERROR_MALLOC);
>  			return;
> @@ -503,43 +506,40 @@ static void stub_recv_cmd_submit(struct stub_device *sdev,
>  	}
>  
>  	/* set priv->urb->setup_packet */
> -	priv->urb->setup_packet = kmemdup(&pdu->u.cmd_submit.setup, 8,
> -					  GFP_KERNEL);
> -	if (!priv->urb->setup_packet) {
> +	urb->setup_packet = kmemdup(&pdu->u.cmd_submit.setup, 8, GFP_KERNEL);
> +	if (!urb->setup_packet) {
>  		dev_err(&sdev->interface->dev, "allocate setup_packet\n");
>  		usbip_event_add(ud, SDEV_EVENT_ERROR_MALLOC);
>  		return;
>  	}
>  
>  	/* set other members from the base header of pdu */
> -	priv->urb->context                = (void *) priv;
> -	priv->urb->dev                    = udev;
> -	priv->urb->pipe                   = pipe;
> -	priv->urb->complete               = stub_complete;
> -
> -	usbip_pack_pdu(pdu, priv->urb, USBIP_CMD_SUBMIT, 0);
> +	urb->context  = (void *) priv;
> +	urb->dev      = udev;
> +	urb->pipe     = pipe;
> +	urb->complete = stub_complete;
>  
> +	usbip_pack_pdu(pdu, urb, USBIP_CMD_SUBMIT, 0);
>  
> -	if (usbip_recv_xbuff(ud, priv->urb) < 0)
> +	if (usbip_recv_xbuff(ud, urb) < 0)
>  		return;
>  
> -	if (usbip_recv_iso(ud, priv->urb) < 0)
> +	if (usbip_recv_iso(ud, urb) < 0)
>  		return;
>  
>  	/* no need to submit an intercepted request, but harmless? */
> -	tweak_special_requests(priv->urb);
> +	tweak_special_requests(urb);
>  
> -	masking_bogus_flags(priv->urb);
> +	masking_bogus_flags(urb);
>  	/* urb is now ready to submit */
> -	ret = usb_submit_urb(priv->urb, GFP_KERNEL);
> -
> +	ret = usb_submit_urb(urb, GFP_KERNEL);
>  	if (ret == 0)
>  		usbip_dbg_stub_rx("submit urb ok, seqnum %u\n",
>  				  pdu->base.seqnum);
>  	else {
>  		dev_err(&sdev->interface->dev, "submit_urb error, %d\n", ret);
>  		usbip_dump_header(pdu);
> -		usbip_dump_urb(priv->urb);
> +		usbip_dump_urb(urb);
>  
>  		/*
>  		 * Pessimistic.


_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel



[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux