Module Name:    src
Committed By:   thorpej
Date:           Fri Mar 20 13:33:23 UTC 2020

Modified Files:
        src/sys/dev/pci: if_iwi.c if_iwivar.h

Log Message:
This driver sleeps during iwi_media_change(), and thus requires an
adaptive mutex for the media lock.


To generate a diff of this commit:
cvs rdiff -u -r1.113 -r1.114 src/sys/dev/pci/if_iwi.c
cvs rdiff -u -r1.19 -r1.20 src/sys/dev/pci/if_iwivar.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/pci/if_iwi.c
diff -u src/sys/dev/pci/if_iwi.c:1.113 src/sys/dev/pci/if_iwi.c:1.114
--- src/sys/dev/pci/if_iwi.c:1.113	Thu Jan 30 06:03:34 2020
+++ src/sys/dev/pci/if_iwi.c	Fri Mar 20 13:33:23 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_iwi.c,v 1.113 2020/01/30 06:03:34 thorpej Exp $  */
+/*	$NetBSD: if_iwi.c,v 1.114 2020/03/20 13:33:23 thorpej Exp $  */
 /*	$OpenBSD: if_iwi.c,v 1.111 2010/11/15 19:11:57 damien Exp $	*/
 
 /*-
@@ -19,7 +19,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_iwi.c,v 1.113 2020/01/30 06:03:34 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_iwi.c,v 1.114 2020/03/20 13:33:23 thorpej Exp $");
 
 /*-
  * Intel(R) PRO/Wireless 2200BG/2225BG/2915ABG driver
@@ -375,7 +375,11 @@ iwi_attach(device_t parent, device_t sel
 	/* override state transition machine */
 	sc->sc_newstate = ic->ic_newstate;
 	ic->ic_newstate = iwi_newstate;
-	ieee80211_media_init(ic, iwi_media_change, iwi_media_status);
+
+	/* XXX media locking needs revisiting */
+	mutex_init(&sc->sc_media_mtx, MUTEX_DEFAULT, IPL_SOFTNET);
+	ieee80211_media_init_with_lock(ic,
+	    iwi_media_change, iwi_media_status, &sc->sc_media_mtx);
 
 	/*
 	 * Allocate rings.

Index: src/sys/dev/pci/if_iwivar.h
diff -u src/sys/dev/pci/if_iwivar.h:1.19 src/sys/dev/pci/if_iwivar.h:1.20
--- src/sys/dev/pci/if_iwivar.h:1.19	Thu Feb  2 10:05:35 2017
+++ src/sys/dev/pci/if_iwivar.h	Fri Mar 20 13:33:23 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_iwivar.h,v 1.19 2017/02/02 10:05:35 nonaka Exp $ */
+/*	$NetBSD: if_iwivar.h,v 1.20 2020/03/20 13:33:23 thorpej Exp $ */
 
 /*-
  * Copyright (c) 2004, 2005
@@ -148,6 +148,8 @@ struct iwi_softc {
 	bus_size_t		sc_sz;
 	void			*sc_soft_ih;
 
+	kmutex_t		sc_media_mtx;	/* XXX */
+
 	struct sysctllog	*sc_sysctllog;
 
 	int			antenna;

Reply via email to