From: stsp Date: Sun, 18 Jul 2021 13:07:13 +0000 (+0000) Subject: Do not ask iwx(4) firmware to send probe requests on passive channels. X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=890792c406db027068dc2f831e22b1bb6966177e;p=openbsd Do not ask iwx(4) firmware to send probe requests on passive channels. This seems to fix a problem where firmware becomes unresponsive after association and eventually raises a fatal error. iwx(4) already has a workaround in place for this: We always ask firmware to perform a passive scan, on any channel. This change is a better fix from iwm(4) CVS commit jJFMeXcos9GOqFQz. However, the current workaround will stay in place for now, until we have evidence that active scanning is working on iwx(4) devices. I will try to organize an out-of-tree round of testing for this. --- diff --git a/sys/dev/pci/if_iwx.c b/sys/dev/pci/if_iwx.c index b8aa25290bf..785509e2824 100644 --- a/sys/dev/pci/if_iwx.c +++ b/sys/dev/pci/if_iwx.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_iwx.c,v 1.68 2021/07/18 12:39:16 stsp Exp $ */ +/* $OpenBSD: if_iwx.c,v 1.69 2021/07/18 13:07:13 stsp Exp $ */ /* * Copyright (c) 2014, 2016 genua gmbh @@ -5334,7 +5334,12 @@ iwx_umac_scan_fill_channels(struct iwx_softc *sc, chan->v1.iter_count = 1; chan->v1.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++;