Author: adrian
Date: Sun Mar 15 20:15:10 2015
New Revision: 280055
URL: https://svnweb.freebsd.org/changeset/base/280055

Log:
  Fix races between wpi_rx_done() and wpi_stop()
  
  PR:           kern/197143
  Submitted by: Andriy Voskoboinyk <s3er...@gmail.com>

Modified:
  head/sys/dev/wpi/if_wpi.c

Modified: head/sys/dev/wpi/if_wpi.c
==============================================================================
--- head/sys/dev/wpi/if_wpi.c   Sun Mar 15 20:13:58 2015        (r280054)
+++ head/sys/dev/wpi/if_wpi.c   Sun Mar 15 20:15:10 2015        (r280055)
@@ -1952,6 +1952,12 @@ wpi_notif_intr(struct wpi_softc *sc)
                case WPI_RX_DONE:
                        /* An 802.11 frame has been received. */
                        wpi_rx_done(sc, desc, data);
+
+                       if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) {
+                               /* wpi_stop() was called. */
+                               return;
+                       }
+
                        break;
 
                case WPI_TX_DONE:
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to