[PATCH] Staging: usbip: Use local pointer to reference urb in stub_recv_cmd_submit
Tobias Klauser
tklauser at distanz.ch
Thu Jun 16 11:38:53 UTC 2011
Use a local pointer to reference the urb instead of dereferencing the
priv->urb member all over the function.
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.
--
1.7.0.4
More information about the devel
mailing list