In iwm(4) and iwx(4), prevent attemps to transition towards the same state
authorstsp <stsp@openbsd.org>
Thu, 30 Sep 2021 09:27:47 +0000 (09:27 +0000)
committerstsp <stsp@openbsd.org>
Thu, 30 Sep 2021 09:27:47 +0000 (09:27 +0000)
commitc99d53f17120fbb0451e6c68bf346967c3f6450b
tree195803fc1e9f37910ade78627bde9c382a31a5e7
parentb96e583a38b434b3aae38f02fdab1f3d93f66efe
In iwm(4) and iwx(4), prevent attemps to transition towards the same state
in cases where this would result in a redundant or illegal state transition.

jmc@ observed ASSOC -> ASSOC transitions which would result in a hang.
Such transitions are invalid and never intentionally triggered by net80211.
They imply a race between the Rx interrupt handler and the newstate task.

Tested by jmc@ on AX200 for a week and several known issues seem to be fixed.
sys/dev/pci/if_iwm.c
sys/dev/pci/if_iwx.c