[RFC 0/2] Serialize timeout handling and done callback.

From: Daniel Wagner
Date: Fri May 07 2021 - 08:31:09 EST


Hi,

We got a customer report where qla2xxx was crashing only if the kernel
was booting and ql2xextended_error_logging was set. Loading the module
with the log option didn't trigger the crash.

After starring for a long time at the crash report I figured the
problem might be a race between the timeout handler and done callback.
I've come up with these patches here but unfortunatly, our customer is
not able to reproduce the problem in the lab anymore (it was caused by
a hardware issue which got fixed). So for these patches I don't have
any feedback.

Maybe they make sense to add the driver even if I don't have prove it
really address the mentioned bug hence this is marked as RFC.

Thanks,
Daniel

Daniel Wagner (2):
qla2xxx: Refactor asynchronous command initialization
qla2xxx: Do not free resource to early in qla24xx_async_gpsc_sp_done()

drivers/scsi/qla2xxx/qla_def.h | 5 ++
drivers/scsi/qla2xxx/qla_gbl.h | 4 +-
drivers/scsi/qla2xxx/qla_gs.c | 86 ++++++++++-------------------
drivers/scsi/qla2xxx/qla_init.c | 91 +++++++++++++------------------
drivers/scsi/qla2xxx/qla_iocb.c | 54 +++++++++++++-----
drivers/scsi/qla2xxx/qla_mbx.c | 11 ++--
drivers/scsi/qla2xxx/qla_mid.c | 5 +-
drivers/scsi/qla2xxx/qla_mr.c | 7 +--
drivers/scsi/qla2xxx/qla_target.c | 6 +-
9 files changed, 127 insertions(+), 142 deletions(-)

--
2.29.2