aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/usb/c67x00/c67x00-sched.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/drivers/usb/c67x00/c67x00-sched.c b/drivers/usb/c67x00/c67x00-sched.c
index c379d202f928..7311ed61e99a 100644
--- a/drivers/usb/c67x00/c67x00-sched.c
+++ b/drivers/usb/c67x00/c67x00-sched.c
@@ -362,6 +362,13 @@ int c67x00_urb_enqueue(struct usb_hcd *hcd,
362 struct c67x00_hcd *c67x00 = hcd_to_c67x00_hcd(hcd); 362 struct c67x00_hcd *c67x00 = hcd_to_c67x00_hcd(hcd);
363 int port = get_root_port(urb->dev)-1; 363 int port = get_root_port(urb->dev)-1;
364 364
365 /* Allocate and initialize urb private data */
366 urbp = kzalloc(sizeof(*urbp), mem_flags);
367 if (!urbp) {
368 ret = -ENOMEM;
369 goto err_urbp;
370 }
371
365 spin_lock_irqsave(&c67x00->lock, flags); 372 spin_lock_irqsave(&c67x00->lock, flags);
366 373
367 /* Make sure host controller is running */ 374 /* Make sure host controller is running */
@@ -374,13 +381,6 @@ int c67x00_urb_enqueue(struct usb_hcd *hcd,
374 if (ret) 381 if (ret)
375 goto err_not_linked; 382 goto err_not_linked;
376 383
377 /* Allocate and initialize urb private data */
378 urbp = kzalloc(sizeof(*urbp), mem_flags);
379 if (!urbp) {
380 ret = -ENOMEM;
381 goto err_urbp;
382 }
383
384 INIT_LIST_HEAD(&urbp->hep_node); 384 INIT_LIST_HEAD(&urbp->hep_node);
385 urbp->urb = urb; 385 urbp->urb = urb;
386 urbp->port = port; 386 urbp->port = port;
@@ -443,11 +443,11 @@ int c67x00_urb_enqueue(struct usb_hcd *hcd,
443 return 0; 443 return 0;
444 444
445err_epdata: 445err_epdata:
446 kfree(urbp);
447err_urbp:
448 usb_hcd_unlink_urb_from_ep(hcd, urb); 446 usb_hcd_unlink_urb_from_ep(hcd, urb);
449err_not_linked: 447err_not_linked:
450 spin_unlock_irqrestore(&c67x00->lock, flags); 448 spin_unlock_irqrestore(&c67x00->lock, flags);
449 kfree(urbp);
450err_urbp:
451 451
452 return ret; 452 return ret;
453} 453}