return urb_priv->num_tds_done == urb_priv->num_tds;
 }
 
+static bool unhandled_event_trb(struct xhci_ring *ring)
+{
+       return ((le32_to_cpu(ring->dequeue->event_cmd.flags) & TRB_CYCLE) ==
+               ring->cycle_state);
+}
+
 static void inc_td_cnt(struct urb *urb)
 {
        struct urb_priv *urb_priv = urb->hcpriv;
        }
 
        event = ir->event_ring->dequeue;
-       /* Does the HC or OS own the TRB? */
-       if ((le32_to_cpu(event->event_cmd.flags) & TRB_CYCLE) !=
-           ir->event_ring->cycle_state)
+
+       if (!unhandled_event_trb(ir->event_ring))
                return 0;
 
        trace_xhci_handle_event(ir->event_ring, &event->generic);