xhci: use completion event's slot id rather than dig it out of command
authorXenia Ragiadakou <[email protected]>
Mon, 9 Sep 2013 10:29:50 +0000 (13:29 +0300)
committerSarah Sharp <[email protected]>
Wed, 16 Oct 2013 19:24:28 +0000 (12:24 -0700)
Since the slot id retrieved from the Reset Device TRB matches the slot id in
the command completion event, which is available, there is no need to determine
it again.
This patch removes the uneccessary reassignment to slot id and adds a WARN_ON
in case the two Slot ID fields differ (although according xhci spec rev1.0
they should not differ).

Signed-off-by: Xenia Ragiadakou <[email protected]>
Signed-off-by: Sarah Sharp <[email protected]>
drivers/usb/host/xhci-ring.c

index e3b61b834aeb8e1309c947daf649bd29b91c08e4..88939b798ac6ff8a9a4c934af7deafb4f9c82603 100644 (file)
@@ -1547,9 +1547,9 @@ bandwidth_change:
                xhci_handle_cmd_reset_ep(xhci, event, xhci->cmd_ring->dequeue);
                break;
        case TRB_TYPE(TRB_RESET_DEV):
+               WARN_ON(slot_id != TRB_TO_SLOT_ID(
+                               le32_to_cpu(xhci->cmd_ring->dequeue->generic.field[3])));
                xhci_dbg(xhci, "Completed reset device command.\n");
-               slot_id = TRB_TO_SLOT_ID(
-                       le32_to_cpu(xhci->cmd_ring->dequeue->generic.field[3]));
                virt_dev = xhci->devs[slot_id];
                if (virt_dev)
                        handle_cmd_in_cmd_wait_list(xhci, virt_dev, event);