Data Race Fix:
Moved the execution of cio_update_schib() and qdio_set_state()
under ccwdev_lock.
This prevents a data race on the shared sch->schib structure and ensures
qdio_set_state() does not overwrite a STOPPED/ERR state when called
locklessly (as identified by Sashiko AI).
Timeout Optimization:
Converted the timeout polling loop from a while to a do..while loop.
This fixes a preemption bug where a thread interruption could trigger
a false ETIMEDOUT failure before the loop body could execute even once.
Nihar Panda (1):
s390/qdio: Ensure QDIO_IRQ_STATE_ACTIVE is set only after firmware
activates.
arch/s390/include/asm/scsw.h | 4 +--
drivers/s390/cio/qdio_main.c | 59 +++++++++++++++++++++++++++---------
2 files changed, 47 insertions(+), 16 deletions(-)
--
2.53.0