Author: avos
Date: Sun Apr  7 13:11:40 2019
New Revision: 346005
URL: https://svnweb.freebsd.org/changeset/base/346005

Log:
  MFC r345751:
  uath(4), urtw(4): restart driver if device does not respond after Tx request

Modified:
  stable/11/sys/dev/usb/wlan/if_uath.c
  stable/11/sys/dev/usb/wlan/if_urtw.c
Directory Properties:
  stable/11/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/12/sys/dev/usb/wlan/if_uath.c
  stable/12/sys/dev/usb/wlan/if_urtw.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/11/sys/dev/usb/wlan/if_uath.c
==============================================================================
--- stable/11/sys/dev/usb/wlan/if_uath.c        Sun Apr  7 13:04:25 2019        
(r346004)
+++ stable/11/sys/dev/usb/wlan/if_uath.c        Sun Apr  7 13:11:40 2019        
(r346005)
@@ -1271,8 +1271,8 @@ uath_watchdog(void *arg)
        if (sc->sc_tx_timer > 0) {
                if (--sc->sc_tx_timer == 0) {
                        device_printf(sc->sc_dev, "device timeout\n");
-                       /*uath_init(sc); XXX needs a process context! */
                        counter_u64_add(ic->ic_oerrors, 1);
+                       ieee80211_restart_all(ic);
                        return;
                }
                callout_reset(&sc->watchdog_ch, hz, uath_watchdog, sc);

Modified: stable/11/sys/dev/usb/wlan/if_urtw.c
==============================================================================
--- stable/11/sys/dev/usb/wlan/if_urtw.c        Sun Apr  7 13:04:25 2019        
(r346004)
+++ stable/11/sys/dev/usb/wlan/if_urtw.c        Sun Apr  7 13:11:40 2019        
(r346005)
@@ -1883,11 +1883,13 @@ static void
 urtw_watchdog(void *arg)
 {
        struct urtw_softc *sc = arg;
+       struct ieee80211com *ic = &sc->sc_ic;
 
        if (sc->sc_txtimer > 0) {
                if (--sc->sc_txtimer == 0) {
                        device_printf(sc->sc_dev, "device timeout\n");
-                       counter_u64_add(sc->sc_ic.ic_oerrors, 1);
+                       counter_u64_add(ic->ic_oerrors, 1);
+                       ieee80211_restart_all(ic);
                        return;
                }
                callout_reset(&sc->sc_watchdog_ch, hz, urtw_watchdog, sc);
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to