[PATCH] Staging: usbip: Use local pointer to reference urb in stub_recv_cmd_submit
Joey Lee
jlee at novell.com
Fri Jun 17 09:00:29 UTC 2011
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 at distanz.ch>
> ---
> 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.
More information about the devel
mailing list