Patch 2.6.32.35 to 2.6.32.36
/drivers/usb/misc/uss720.c
blob:56b1e735a078f883648e17b64709f98af5ed3f13 -> blob:5a03b2e4c3932499820bfaef40630668115f15eb
--- drivers/usb/misc/uss720.c
+++ drivers/usb/misc/uss720.c
@@ -176,11 +176,12 @@ static struct uss720_async_request *subm
spin_lock_irqsave(&priv->asynclock, flags);
list_add_tail(&rq->asynclist, &priv->asynclist);
spin_unlock_irqrestore(&priv->asynclock, flags);
- kref_get(&rq->ref_count);
ret = usb_submit_urb(rq->urb, mem_flags);
- if (!ret)
+ if (!ret) {
+ kref_get(&rq->ref_count);
return rq;
- destroy_async(&rq->ref_count);
+ }
+ kref_put(&rq->ref_count, destroy_async);
err("submit_async_request submit_urb failed with %d", ret);
return NULL;
}