On Sun, Nov 21, 2021 at 09:05:29AM +0000, Laurence Tratt wrote:
> As of a kernel from a couple of days ago, iwx semi-regularly stops
> associating with my wireless AP. An easy way to trigger this is "pkg_add
> -u": at some point, downloading stops mid-package, and I need to "sh
> /etc/netstart" to bring the interface back up.
>
> My previous kernel was about a week old. I had noticed with that kernel that
> sometimes iwx stopped soon after boot, but one kick of /etc/netstart seemed
> to make it good for the whole day, whereas now it seems to stop multiple
> times (but I hadn't done pkg_add very often in that week!). The AP is a
> Ruckus R510 and none of the other clients connected to it seems to have this
> issue.
>
> I'm attaching my dmesg + IWX_DEBUG set to 1 in case it helps anyone.
Please try this patch. I cannot promise that it will help, but it might.
diff f6006ae72dd91e94a3c4244318ea54107ae8eedc /usr/src
blob - 38768d23f5005d3cc3d2fc6295ef3a3085484a7e
file + sys/dev/pci/if_iwx.c
--- sys/dev/pci/if_iwx.c
+++ sys/dev/pci/if_iwx.c
@@ -5911,9 +5911,11 @@ iwx_umac_scan_fill_channels(struct iwx_softc *sc,
* Firmware may become unresponsive when asked to send
* a directed probe request on a passive channel.
*/
+#if 0
if (n_ssids != 0 && !bgscan &&
(c->ic_flags & IEEE80211_CHAN_PASSIVE) == 0)
chan->flags = htole32(1 << 0); /* select SSID 0 */
+#endif
chan++;
nchan++;
}
@@ -6160,7 +6162,9 @@ iwx_scan_umac_fill_ch_p_v6(struct iwx_softc *sc,
int
iwx_umac_scan_v14(struct iwx_softc *sc, int bgscan)
{
+#if 0
struct ieee80211com *ic = &sc->sc_ic;
+#endif
struct iwx_host_cmd hcmd = {
.id = iwx_cmd_id(IWX_SCAN_REQ_UMAC, IWX_LONG_GROUP, 0),
.len = { 0, },
@@ -6196,6 +6200,7 @@ iwx_umac_scan_v14(struct iwx_softc *sc, int bgscan)
return err;
}
+#if 0
if (ic->ic_des_esslen != 0) {
scan_p->probe_params.direct_scan[0].id = IEEE80211_ELEMID_SSID;
scan_p->probe_params.direct_scan[0].len = ic->ic_des_esslen;
@@ -6204,6 +6209,7 @@ iwx_umac_scan_v14(struct iwx_softc *sc, int bgscan)
bitmap_ssid |= (1 << 0);
n_ssid = 1;
}
+#endif
iwx_scan_umac_fill_ch_p_v6(sc, &scan_p->channel_params, bitmap_ssid,
n_ssid, bgscan);