Stop sending a PHY context update in iwx_run_stop()
authorstsp <stsp@openbsd.org>
Thu, 11 May 2023 16:55:46 +0000 (16:55 +0000)
committerstsp <stsp@openbsd.org>
Thu, 11 May 2023 16:55:46 +0000 (16:55 +0000)
commit45b99ba90844baca4175c7ec19aa856307f525a5
treefa0e3b2851bd5ac893aa535e031bc8cc20405d12
parentea3b483624bee29ee21ef9b26b7d668633ae0c1a
Stop sending a PHY context update in iwx_run_stop()

Fixes firmware error iwx0: 0x20101A28 | ADVANCED_SYSASSERT which would
occur while tearing down the state of our association to the AP.

The problem occurred when we were trying to reconfigure the PHY context
in a way that is incompatible with the TLC configuration. Since we will
always call iwx_deauth() next, which removes the AP station and related
data such as TLC from firmware before updating the PHY context yet again
we can simply skip the redundant PHY context update in iwx_run_stop() to
prevent this firmware error.

A reliable way to reproduce the problem is an attempt to connect to an
11ac access point on a 5GHz channel while the wrong WPA key is set which
happened to me because mpi@ uses a French WPA passphrase.
Problem confirmed fixed by me with this simple reproducer.

Helpful hints provided by Johannes Berg at Linux/Intel, thanks!
sys/dev/pci/if_iwx.c