In iwx(4), fix wrong pointer assignment in iwx_bar_frame_release().
authorstsp <stsp@openbsd.org>
Wed, 5 Jan 2022 16:33:42 +0000 (16:33 +0000)
committerstsp <stsp@openbsd.org>
Wed, 5 Jan 2022 16:33:42 +0000 (16:33 +0000)
commit60a617df62818dea1230efd322bef32f1e83a0f5
tree636ed47126a69a6bed879c249e59f013d01bdbe1
parent81b30a3135083b217d7d199861da61742c2bb692
In iwx(4), fix wrong pointer assignment in iwx_bar_frame_release().

This bug caused the driver to read block ack request information sent
by firmware from the wrong offset. The driver flushes buffered frames
and moves its Rx block ack window based on this information. Possible
consequences of this bug are packet loss or even stalled traffic if
the Rx BA window gets out of sync between driver and firmware. Though
this effect might get cancelled out when the driver re-syncs the BA
window in its regular Rx code path.

Spotted by Christian Ehrhardt.
sys/dev/pci/if_iwx.c