mbox series

[v3,0/5] scsi: qla2xxx: fixes for driver unloading

Message ID 20200327164711.5358-1-mwilck@suse.com (mailing list archive)
Headers show
Series scsi: qla2xxx: fixes for driver unloading | expand

Message

Martin Wilck March 27, 2020, 4:47 p.m. UTC
From: Martin Wilck <mwilck@suse.com>

Hello Martin, Arun, Himanshu, all,

here is v3 of the little series I first submitted on Nov 29, 2019.
It's pretty much a complete rewrite, except for 1/5 which was 3/3 in v2.

Reviews welcome.
Martin

Changes since v2:
 - Removed "scsi: qla2xxx: avoid sending mailbox commands if firmware is
   stopped", because the first hunk is obsoleted by the (new) 1/3, and Arun
   suggested to use a different approach (which is now in 4/3) for the second
   hunk.
 - Removed "scsi: qla2xxx: don't shut down firmware before closing sessions"
   (nak'd by Arun).
 - Former 3/3 is now 1/5
 - Added "scsi: qla2xxx: check UNLOADING before posting async work". This one
   is key for avoiding lags when qla2xxx is unloaded.
 - Added revert of "scsi: qla2xxx: Fix unbound sleep in fcport delete path.",
   as I believe it's now obsolete.
   If we ever encounter unbound sleep there again, we should rather figure
   out the reason than simply abort waiting.
 - Added patch 4 and 5, a new attempt at avoiding mailbox and HW request queue
   access at low level. 4/5 was motivated by Arun's comments on my v2 series.
   5/5 is obviously similar in spirit to 77ddb94a4853 ("scsi: qla2xxx: Only
   allow operational MBX to proceed during RESET."), but I found that the
   rom_cmds list contains commands that would hang when the FW is stopped,
   so I created a new list. Perhaps some day the two can be consolidated.

Changes since v1:
 - Added patch 3 to set the UNLOADING flag before waiting for sessions
   to end (Roman)
 - Use test_and_set_bit() for UNLOADING (Hannes)

Martin Wilck (5):
  scsi: qla2xxx: set UNLOADING before waiting for session deletion
  scsi: qla2xxx: check UNLOADING before posting async work
  Revert "scsi: qla2xxx: Fix unbound sleep in fcport delete path."
  scsi: qla2xxx: avoid sending iocbs when firmware is stopped
  scsi: qla2xxx: only send certain mailbox commands to stopped firmware

 drivers/scsi/qla2xxx/qla_inline.h |  3 ++
 drivers/scsi/qla2xxx/qla_iocb.c   | 23 ++++++++++++++++
 drivers/scsi/qla2xxx/qla_mbx.c    | 46 +++++++++++++++++++++++++++++++
 drivers/scsi/qla2xxx/qla_nvme.c   |  3 ++
 drivers/scsi/qla2xxx/qla_os.c     | 35 ++++++++++++-----------
 drivers/scsi/qla2xxx/qla_target.c |  4 ---
 6 files changed, 92 insertions(+), 22 deletions(-)