Author: yongari
Date: Fri Nov  4 23:09:57 2011
New Revision: 227098
URL: http://svn.freebsd.org/changeset/base/227098

Log:
  Because ti(4) drops a driver lock in RX handler, check whether
  driver is still running before re-enabling interrupts.

Modified:
  head/sys/dev/ti/if_ti.c

Modified: head/sys/dev/ti/if_ti.c
==============================================================================
--- head/sys/dev/ti/if_ti.c     Fri Nov  4 22:58:34 2011        (r227097)
+++ head/sys/dev/ti/if_ti.c     Fri Nov  4 23:09:57 2011        (r227098)
@@ -2856,12 +2856,12 @@ ti_intr(void *xsc)
 
        ti_handle_events(sc);
 
-       /* Re-enable interrupts. */
-       CSR_WRITE_4(sc, TI_MB_HOSTINTR, 0);
-
        if (ifp->if_drv_flags & IFF_DRV_RUNNING &&
-           ifp->if_snd.ifq_head != NULL)
+           ifp->if_snd.ifq_head != NULL) {
+               /* Re-enable interrupts. */
+               CSR_WRITE_4(sc, TI_MB_HOSTINTR, 0);
                ti_start_locked(ifp);
+       }
 
        TI_UNLOCK(sc);
 }
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to