Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src-draft/trunk]: src/sys/dev/usb There is still a need to serialize state c...
details: https://anonhg.NetBSD.org/src-all/rev/0d0e0ac981c2
branches: trunk
changeset: 986064:0d0e0ac981c2
user: Nathanial Sloss <nat%netbsd.org@localhost>
date: Sun Aug 16 08:33:36 2020 +1000
description:
There is still a need to serialize state changes.
diffstat:
sys/dev/usb/if_urtwn.c | 4 ++++
sys/dev/usb/if_urtwnvar.h | 1 +
2 files changed, 5 insertions(+), 0 deletions(-)
diffs (46 lines):
diff -r 39f4da71325f -r 0d0e0ac981c2 sys/dev/usb/if_urtwn.c
--- a/sys/dev/usb/if_urtwn.c Sun Aug 16 08:24:28 2020 +1000
+++ b/sys/dev/usb/if_urtwn.c Sun Aug 16 08:33:36 2020 +1000
@@ -429,6 +429,7 @@
mutex_init(&sc->sc_rx_mtx, MUTEX_DEFAULT, IPL_SOFTNET);
mutex_init(&sc->sc_fwcmd_mtx, MUTEX_DEFAULT, IPL_NONE);
mutex_init(&sc->sc_write_mtx, MUTEX_DEFAULT, IPL_NONE);
+ mutex_init(&sc->sc_state_mtx, MUTEX_DEFAULT, IPL_NONE);
mutex_enter(&sc->sc_write_mtx);
usb_init_task(&sc->sc_task, urtwn_task, sc, 0);
@@ -667,6 +668,7 @@
callout_destroy(&sc->sc_scan_to);
callout_destroy(&sc->sc_calib_to);
+ mutex_destroy(&sc->sc_state_mtx);
mutex_destroy(&sc->sc_write_mtx);
mutex_destroy(&sc->sc_fwcmd_mtx);
mutex_destroy(&sc->sc_tx_mtx);
@@ -2328,6 +2330,7 @@
ieee80211_state_name[nstate], nstate));
s = splnet();
+ mutex_enter(&sc->sc_state_mtx);
mutex_enter(&sc->sc_write_mtx);
callout_stop(&sc->sc_scan_to);
@@ -2638,6 +2641,7 @@
#endif
error = (*sc->sc_newstate)(vap, nstate, arg);
+ mutex_exit(&sc->sc_state_mtx);
splx(s);
return error;
}
diff -r 39f4da71325f -r 0d0e0ac981c2 sys/dev/usb/if_urtwnvar.h
--- a/sys/dev/usb/if_urtwnvar.h Sun Aug 16 08:24:28 2020 +1000
+++ b/sys/dev/usb/if_urtwnvar.h Sun Aug 16 08:33:36 2020 +1000
@@ -135,6 +135,7 @@
kmutex_t sc_tx_mtx;
kmutex_t sc_rx_mtx;
kmutex_t sc_write_mtx;
+ kmutex_t sc_state_mtx;
kmutex_t sc_media_mtx; /* XXX */
struct usbd_pipe * rx_pipe[R92C_MAX_EPIN];
Home |
Main Index |
Thread Index |
Old Index