Index: sys/dev/ic/sl811hs.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/sl811hs.c,v retrieving revision 1.85 diff -u -p -r1.85 sl811hs.c --- sys/dev/ic/sl811hs.c 20 Jun 2016 14:18:30 -0000 1.85 +++ sys/dev/ic/sl811hs.c 20 Jun 2016 14:20:01 -0000 @@ -1524,13 +1549,17 @@ slhci_intr(void *arg) { SLHCIHIST_FUNC(); SLHCIHIST_CALLED(); struct slhci_softc *sc = arg; - int ret; + int ret = 0; + int irq; start_cc_time(&t_hard_int, (unsigned int)arg); mutex_enter(&sc->sc_intr_lock); - ret = slhci_dointr(sc); - slhci_main(sc); + do { + irq = slhci_dointr(sc); + ret |= irq; + slhci_main(sc); + } while (irq); mutex_exit(&sc->sc_intr_lock); stop_cc_time(&t_hard_int);