This patch fixes the following memory leak reported by kmemleak:
unreferenced object 0xffff880060a53840 (size 192):
  comm "softirq", pid 0, jiffies 
4320571771 (age 1406.569s)
  hex dump (first 32 bytes):
    01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
  backtrace:
    [<
ffffffff81138a1c>] create_object+0x187/0x28b
    [<
ffffffff814be12e>] kmemleak_alloc+0x73/0x98
    [<
ffffffff811289d3>] __kmalloc+0xfc/0x123
    [<
ffffffff81386546>] usb_alloc_urb+0x1e/0x48
    [<
ffffffffa0130274>] btusb_send_frame+0x86/0x385 [btusb]
    [<
ffffffffa02d8230>] hci_send_frame+0xa0/0xa5 [bluetooth]
    [<
ffffffffa02d8a4e>] hci_cmd_task+0xa0/0xfb [bluetooth]
    [<
ffffffff81058548>] tasklet_action+0x8f/0xef
    [<
ffffffff81058a4c>] __do_softirq+0xf4/0x1db
    [<
ffffffff81058bb7>] run_ksoftirqd+0x84/0x129
    [<
ffffffff8106f1c4>] kthread+0xa0/0xa8
    [<
ffffffff814dd144>] kernel_thread_helper+0x4/0x10
    [<
ffffffffffffffff>] 0xffffffffffffffff
The problem is that when inc_tx() returns non-zero, we forgot
to call usb_free_urb().
Cc: Marcel Holtmann <marcel@holtmann.org>
Cc: "Gustavo F. Padovan" <padovan@profusion.mobi>
Signed-off-by: WANG Cong <amwang@redhat.com>
Acked-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
                usb_mark_last_busy(data->udev);
        }
 
-       usb_free_urb(urb);
-
 done:
+       usb_free_urb(urb);
        return err;
 }