Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 7 Apr 2019 13:11:41 +0000 (UTC)
From:      Andriy Voskoboinyk <avos@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org
Subject:   svn commit: r346005 - in stable: 11/sys/dev/usb/wlan 12/sys/dev/usb/wlan
Message-ID:  <201904071311.x37DBfnx031124@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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/12/sys/dev/usb/wlan/if_uath.c
  stable/12/sys/dev/usb/wlan/if_urtw.c
Directory Properties:
  stable/12/   (props changed)

Changes in other areas also in this revision:
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)

Modified: stable/12/sys/dev/usb/wlan/if_uath.c
==============================================================================
--- stable/12/sys/dev/usb/wlan/if_uath.c	Sun Apr  7 13:04:25 2019	(r346004)
+++ stable/12/sys/dev/usb/wlan/if_uath.c	Sun Apr  7 13:11:40 2019	(r346005)
@@ -1276,8 +1276,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/12/sys/dev/usb/wlan/if_urtw.c
==============================================================================
--- stable/12/sys/dev/usb/wlan/if_urtw.c	Sun Apr  7 13:04:25 2019	(r346004)
+++ stable/12/sys/dev/usb/wlan/if_urtw.c	Sun Apr  7 13:11:40 2019	(r346005)
@@ -1891,11 +1891,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);



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