Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Apr 2014 03:16:47 +0000 (UTC)
From:      Kevin Lo <kevlo@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r264864 - head/sys/dev/usb/wlan
Message-ID:  <201404240316.s3O3GlUl093950@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kevlo
Date: Thu Apr 24 03:16:47 2014
New Revision: 264864
URL: http://svnweb.freebsd.org/changeset/base/264864

Log:
  Fix panic by adding mtx_assert() to urtwn_init_locked() and
  urtwn_stop_locked().
  
  Tested by:	Anthony Jenkins <scoobi_doo at yahoo dot com>

Modified:
  head/sys/dev/usb/wlan/if_urtwn.c

Modified: head/sys/dev/usb/wlan/if_urtwn.c
==============================================================================
--- head/sys/dev/usb/wlan/if_urtwn.c	Thu Apr 24 02:16:23 2014	(r264863)
+++ head/sys/dev/usb/wlan/if_urtwn.c	Thu Apr 24 03:16:47 2014	(r264864)
@@ -2054,6 +2054,7 @@ urtwn_load_firmware(struct urtwn_softc *
 	uint32_t reg;
 	int mlen, ntries, page, error;
 
+	URTWN_UNLOCK(sc);
 	/* Read firmware image from the filesystem. */
 	if ((sc->chip & (URTWN_CHIP_UMC_A_CUT | URTWN_CHIP_92C)) ==
 	    URTWN_CHIP_UMC_A_CUT)
@@ -2062,6 +2063,7 @@ urtwn_load_firmware(struct urtwn_softc *
 		imagename = "urtwn-rtl8192cfwT";
 
 	fw = firmware_get(imagename);
+	URTWN_LOCK(sc);
 	if (fw == NULL) {
 		device_printf(sc->sc_dev,
 		    "failed loadfirmware of file %s\n", imagename);
@@ -2816,6 +2818,8 @@ urtwn_init_locked(void *arg)
 	uint32_t reg;
 	int error;
 
+	URTWN_ASSERT_LOCKED(sc);
+
 	if (ifp->if_drv_flags & IFF_DRV_RUNNING)
 		urtwn_stop_locked(ifp);
 
@@ -2979,6 +2983,8 @@ urtwn_stop_locked(struct ifnet *ifp)
 {
 	struct urtwn_softc *sc = ifp->if_softc;
 
+	URTWN_ASSERT_LOCKED(sc);
+
 	ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE);
 
 	callout_stop(&sc->sc_watchdog_ch);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201404240316.s3O3GlUl093950>