prevent memory leaks from duplicate/spurious qwx(4) fw memory requests
authorstsp <stsp@openbsd.org>
Fri, 16 Feb 2024 14:13:45 +0000 (14:13 +0000)
committerstsp <stsp@openbsd.org>
Fri, 16 Feb 2024 14:13:45 +0000 (14:13 +0000)
commit33cf7d2bc5273f0b91bfdaa38e268266148c5727
tree48bc6c65027853e8a962ed9f78b745eaa16c0cd1
parent5d23b0275781119432674959a6de37b21138989e
prevent memory leaks from duplicate/spurious qwx(4) fw memory requests

The request_mem_indication event handler would always allocate a new
buffer to store the firmware's request, potentially leaking an already
existing copy. Ensure that this buffer is always freed, and avoid
allocating it in the first place if we're not currently expecting this
event to occur.
All this would have surfaced the previously fixed bug with the missing
wakeup much earlier. The wakeup was always missed but when the driver
retried it would find the stale buffer from the previous event and not
even enter tsleep.
sys/dev/ic/qwx.c
sys/dev/ic/qwxvar.h