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@