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);

Reply via email to