Let iwm(4) flush Tx queues before removing the firmware station and
authorstsp <stsp@openbsd.org>
Mon, 10 May 2021 08:28:00 +0000 (08:28 +0000)
committerstsp <stsp@openbsd.org>
Mon, 10 May 2021 08:28:00 +0000 (08:28 +0000)
commit8dcb626a73ebcb73d3ca51c5c9109cba15b1cf5e
treeb5772e982879c8b0ab3d286fa4d4fc8ab9290fc9
parenteb0e73bd3992d0f7669bd69d5e5339ca8dc78a10
Let iwm(4) flush Tx queues before removing the firmware station and
before stopping a Tx block ack session. This aligns us more closely
with how the Linux iwlwifi driver is doing things.

Also, reset the device if an errors occurs in the block ack session task.
Fixes auto-recovery after such errors.

Prompted by firmware error reports from kettenis@ and Matthias Schmidt.
Doesn't fix the reported issues completely. I will keep investigating.

Tested:
7265: stsp
8265: Matthias Schmidt
9260: phessler, kettenis
sys/dev/pci/if_iwm.c
sys/dev/pci/if_iwmvar.h