From: stsp Date: Fri, 9 Jul 2021 11:29:08 +0000 (+0000) Subject: Do not ask iwm(4) firmware to send probe requests on passive channels. X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=17079ac21452238e60bb7ff5947340f83a4745e7;p=openbsd Do not ask iwm(4) firmware to send probe requests on passive channels. This seems to fix a problem where newer 9k firmware versions become unresponsive after association and eventually raise a fatal error. --- diff --git a/sys/dev/pci/if_iwm.c b/sys/dev/pci/if_iwm.c index 615d9a492b0..8563cc1b943 100644 --- a/sys/dev/pci/if_iwm.c +++ b/sys/dev/pci/if_iwm.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_iwm.c,v 1.350 2021/07/09 11:24:55 stsp Exp $ */ +/* $OpenBSD: if_iwm.c,v 1.351 2021/07/09 11:29:08 stsp Exp $ */ /* * Copyright (c) 2014, 2016 genua gmbh @@ -7105,7 +7105,12 @@ iwm_lmac_scan_fill_channels(struct iwm_softc *sc, chan->iter_count = htole16(1); chan->iter_interval = 0; chan->flags = htole32(IWM_UNIFIED_SCAN_CHANNEL_PARTIAL); - if (n_ssids != 0 && !bgscan) + /* + * Firmware may become unresponsive when asked to send + * a directed probe request on a passive channel. + */ + if (n_ssids != 0 && !bgscan && + (c->ic_flags & IEEE80211_CHAN_PASSIVE) == 0) chan->flags |= htole32(1 << 1); /* select SSID 0 */ chan++; nchan++; @@ -7132,7 +7137,12 @@ iwm_umac_scan_fill_channels(struct iwm_softc *sc, chan->channel_num = ieee80211_mhz2ieee(c->ic_freq, 0); chan->iter_count = 1; chan->iter_interval = htole16(0); - if (n_ssids != 0 && !bgscan) + /* + * Firmware may become unresponsive when asked to send + * a directed probe request on a passive channel. + */ + if (n_ssids != 0 && !bgscan && + (c->ic_flags & IEEE80211_CHAN_PASSIVE) == 0) chan->flags = htole32(1 << 0); /* select SSID 0 */ chan++; nchan++;