xhci: Fix memory leak in ring cache deallocation.
[linux-flexiantxendom0-natty.git] / drivers / usb / host / xhci-mem.c
index a953439..4471d86 100644 (file)
@@ -207,14 +207,13 @@ void xhci_free_or_cache_endpoint_ring(struct xhci_hcd *xhci,
 
        rings_cached = virt_dev->num_rings_cached;
        if (rings_cached < XHCI_MAX_RINGS_CACHED) {
-               virt_dev->num_rings_cached++;
-               rings_cached = virt_dev->num_rings_cached;
                virt_dev->ring_cache[rings_cached] =
                        virt_dev->eps[ep_index].ring;
+               virt_dev->num_rings_cached++;
                xhci_dbg(xhci, "Cached old ring, "
                                "%d ring%s cached\n",
-                               rings_cached,
-                               (rings_cached > 1) ? "s" : "");
+                               virt_dev->num_rings_cached,
+                               (virt_dev->num_rings_cached > 1) ? "s" : "");
        } else {
                xhci_ring_free(xhci, virt_dev->eps[ep_index].ring);
                xhci_dbg(xhci, "Ring cache full (%d rings), "