Module Name: src Committed By: sevan Date: Fri Mar 20 16:35:41 UTC 2020
Modified Files: src/sys/dev/pci: if_iwn.c if_iwnvar.h Log Message: Apply the same change as for if_iwi.c r1.114 here, as part of kern/55090. This driver sleeps during iwn_media_change(), and thus requires an adaptive mutex for the media lock. To generate a diff of this commit: cvs rdiff -u -r1.93 -r1.94 src/sys/dev/pci/if_iwn.c cvs rdiff -u -r1.21 -r1.22 src/sys/dev/pci/if_iwnvar.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_iwn.c diff -u src/sys/dev/pci/if_iwn.c:1.93 src/sys/dev/pci/if_iwn.c:1.94 --- src/sys/dev/pci/if_iwn.c:1.93 Thu Jan 30 06:03:34 2020 +++ src/sys/dev/pci/if_iwn.c Fri Mar 20 16:35:41 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: if_iwn.c,v 1.93 2020/01/30 06:03:34 thorpej Exp $ */ +/* $NetBSD: if_iwn.c,v 1.94 2020/03/20 16:35:41 sevan Exp $ */ /* $OpenBSD: if_iwn.c,v 1.135 2014/09/10 07:22:09 dcoppa Exp $ */ /*- @@ -22,7 +22,7 @@ * adapters. */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_iwn.c,v 1.93 2020/01/30 06:03:34 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_iwn.c,v 1.94 2020/03/20 16:35:41 sevan Exp $"); #define IWN_USE_RBUF /* Use local storage for RX */ #undef IWN_HWCRYPTO /* XXX does not even compile yet */ @@ -614,7 +614,11 @@ iwn_attach(device_t parent __unused, dev /* Override 802.11 state transition machine. */ sc->sc_newstate = ic->ic_newstate; ic->ic_newstate = iwn_newstate; - ieee80211_media_init(ic, iwn_media_change, ieee80211_media_status); + + /* XXX media locking needs revisiting */ + mutex_init(&sc->sc_media_mtx, MUTEX_DEFAULT, IPL_SOFTNET); + ieee80211_media_init_with_lock(ic, + iwn_media_change, ieee80211_media_status, &sc->sc_media_mtx); sc->amrr.amrr_min_success_threshold = 1; sc->amrr.amrr_max_success_threshold = 15; Index: src/sys/dev/pci/if_iwnvar.h diff -u src/sys/dev/pci/if_iwnvar.h:1.21 src/sys/dev/pci/if_iwnvar.h:1.22 --- src/sys/dev/pci/if_iwnvar.h:1.21 Sat Oct 5 23:27:20 2019 +++ src/sys/dev/pci/if_iwnvar.h Fri Mar 20 16:35:41 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: if_iwnvar.h,v 1.21 2019/10/05 23:27:20 mrg Exp $ */ +/* $NetBSD: if_iwnvar.h,v 1.22 2020/03/20 16:35:41 sevan Exp $ */ /* $OpenBSD: if_iwnvar.h,v 1.28 2014/09/09 18:55:08 sthen Exp $ */ /*- @@ -324,6 +324,8 @@ struct iwn_softc { struct bpf_if * sc_drvbpf; + kmutex_t sc_media_mtx; /* XXX */ + union { struct iwn_rx_radiotap_header th; uint8_t pad[IEEE80211_RADIOTAP_HDRLEN];