mmc: vub300: add missing usb_free_urb
authorJulia Lawall <Julia.Lawall@lip6.fr>
Tue, 24 Jul 2012 15:06:10 +0000 (17:06 +0200)
committerChris Ball <cjb@laptop.org>
Tue, 4 Sep 2012 17:58:16 +0000 (13:58 -0400)
Add missing usb_free_urb on failure path after usb_alloc_urb.

A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
@km exists@
local idexpression e;
expression e1,e2,e3;
type T,T1;
identifier f;
@@

* e = usb_alloc_urb(...)
... when any
    when != e = e1
    when != e1 = (T)e
    when != e1(...,(T)e,...)
    when != &e->f
if(...) { ... when != e2(...,(T1)e,...)
                 when != e3 = e
                 when forall
(
             return <+...e...+>;
|
*             return ...;
) }
// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Chris Ball <cjb@laptop.org>
drivers/mmc/host/vub300.c

index 3135a1a5d75d004fda64cf0160f14481bc6af333..6c39bf1fd279c26afb1a6304f92d9734b0dff6a1 100644 (file)
@@ -2358,9 +2358,9 @@ error5:
         * which is contained at the end of struct mmc
         */
 error4:
-       usb_free_urb(command_out_urb);
-error1:
        usb_free_urb(command_res_urb);
+error1:
+       usb_free_urb(command_out_urb);
 error0:
        return retval;
 }