if ((port_id <= 0) || (port_id > max_ports)) {
                xhci_warn(xhci, "Port change event with invalid port ID %d\n",
                          port_id);
-               inc_deq(xhci, ir->event_ring);
                return;
        }
 
        }
 
 cleanup:
-       /* Update event ring dequeue pointer before dropping the lock */
-       inc_deq(xhci, ir->event_ring);
 
        /* Don't make the USB core poll the roothub if we got a bad port status
         * change event.  Besides, at that point we can't tell which roothub
 static int xhci_handle_event(struct xhci_hcd *xhci, struct xhci_interrupter *ir)
 {
        union xhci_trb *event;
-       int update_ptrs = 1;
        u32 trb_type;
 
        /* Event ring hasn't been allocated yet. */
                break;
        case TRB_PORT_STATUS:
                handle_port_status(xhci, ir, event);
-               update_ptrs = 0;
                break;
        case TRB_TRANSFER:
                handle_tx_event(xhci, ir, &event->trans_event);
                return 0;
        }
 
-       if (update_ptrs)
-               /* Update SW event ring dequeue pointer */
-               inc_deq(xhci, ir->event_ring);
+       /* Update SW event ring dequeue pointer */
+       inc_deq(xhci, ir->event_ring);
 
        /* Are there more items on the event ring?  Caller will call us again to
         * check.