CVSROOT:        /cvs
Module name:    src
Changes by:     s...@cvs.openbsd.org    2021/09/08 05:35:08

Modified files:
        sys/dev/pci    : if_iwm.c if_iwx.c 

Log message:
Let iwm(4) and iwx(4) sleep for 1 second while loading firmware.

Sleeping for 1 second matches what iwn(4) does. Fixes issues where loading
firmware failed for bogus reasons. I could trigger this failure on AX200
with suspend/resume but it was not inherently specific to suspend/resume.

The previous code was looping over tsleep(9) in steps of 100msec.
This could lead to a race where the firmware's alive interrupt fired between
the endtsleep() timeout handler, which marks the sleep timeout as expired,
and sleep_finish(), which reschedules the sleeping thread. The driver would
see EWOULDBLOCK and report an error even though loading firmware did succeed.

ok mpi@

Reply via email to