From: Hannes Reinecke <hare@suse.de>
To: "Martin K. Petersen" <martin.petersen@oracle.com>
Cc: James Bottomley <james.bottomley@hansenpartnership.com>,
linux-scsi@vger.kernel.org, Christoph Hellwig <hch@lst.de>,
Hannes Reinecke <hare@suse.de>
Subject: [PATCHv500/15] scsi: EH rework prep patches, part 2
Date: Mon, 2 Oct 2023 17:49:12 +0200 [thread overview]
Message-ID: <20231002154927.68643-1-hare@suse.de> (raw)
Hi all,
(taking up an old thread:)
here's the second batch of patches for my EH rework.
It modifies the reset callbacks for SCSI drivers
such that the final conversion to drop the 'struct scsi_cmnd'
argument and use the entity in question (host, bus, target, device)
as the argument to the SCSI EH callbacks becomes possible.
The second part covers drivers which require a bit more love.
In particular the fnic, snic, and csiostor drivers require a tag to
send TMFs. So to handle that I've modified the patches to call
scsi_alloc_request() with the NOWAIT flag; that will return a scsi
command with a valid tag. It might fail (eg when the tagset is full),
but in these cases it might be better to fall back to host_reset anyway.
As usual, comments and reviews are welcome.
Changes to v4:
- rework snic to use a dedicated tag for host reset
- rework snic to allocate TMFs on the fly
- rework fnic to allocate TMFs on the fly
- rework csiostor to allocat TMFs on the fly
- drop fc_block_rport() from zfcp host_reset
- Rebase to latest linus tree
Changes to v3:
- Move fnic and snic patches to the next patchset
- Include reviews from Ewan Milne
Changes to v2:
- Include reviews from John Garry
- move mpi3mr, zfcp, sym53c8xx_2, and qla1280 patches to the
next patchset
Changes to the initial version:
- Include reviews from Christoph
- Fixup build robot issues
Hannes Reinecke (15):
zfcp: do not wait for rports to become unblocked after host reset
bfa: Do not use scsi command to signal TMF status
aha152x: look for stuck command when resetting device
a1000u2w: do not rely on the command for inia100_device_reset()
fas216: Rework device reset to not rely on SCSI command pointer
xen-scsifront: add scsi device as argument to scsifront_do_request()
xen-scsifront: rework scsifront_action_handler()
libiscsi: use cls_session as argument for target and session reset
scsi_transport_iscsi: use session as argument for
iscsi_block_scsi_eh()
snic: reserve tag for TMF
snic: allocate device reset command
snic: Use scsi_host_busy_iter() to traverse commands
fnic: allocate device reset command on the fly
fnic: use fc_block_rport() correctly
csiostor: use separate TMF command
drivers/s390/scsi/zfcp_scsi.c | 4 -
drivers/scsi/a100u2w.c | 43 +---
drivers/scsi/aha152x.c | 26 ++-
drivers/scsi/arm/fas216.c | 39 ++--
drivers/scsi/be2iscsi/be_main.c | 10 +-
drivers/scsi/bfa/bfad_im.c | 112 +++++-----
drivers/scsi/bfa/bfad_im.h | 2 +
drivers/scsi/csiostor/csio_scsi.c | 72 ++++---
drivers/scsi/fnic/fnic.h | 1 -
drivers/scsi/fnic/fnic_scsi.c | 115 +++++-----
drivers/scsi/libiscsi.c | 21 +-
drivers/scsi/qla4xxx/ql4_os.c | 34 +--
drivers/scsi/scsi_transport_iscsi.c | 6 +-
drivers/scsi/snic/snic.h | 2 +-
drivers/scsi/snic/snic_main.c | 5 +-
drivers/scsi/snic/snic_scsi.c | 319 ++++++++++++----------------
drivers/scsi/xen-scsifront.c | 49 +++--
include/scsi/libiscsi.h | 2 +-
include/scsi/scsi_transport_iscsi.h | 2 +-
19 files changed, 414 insertions(+), 450 deletions(-)
--
2.35.3
next reply other threads:[~2023-10-02 15:49 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-02 15:49 Hannes Reinecke [this message]
2023-10-02 15:49 ` [PATCH 01/15] zfcp: do not wait for rports to become unblocked after host reset Hannes Reinecke
2023-10-12 13:54 ` Benjamin Block
2023-10-12 14:23 ` Hannes Reinecke
2023-10-12 17:49 ` Benjamin Block
2023-10-13 6:18 ` Hannes Reinecke
2023-10-02 15:49 ` [PATCH 02/15] bfa: Do not use scsi command to signal TMF status Hannes Reinecke
2023-10-02 15:49 ` [PATCH 03/15] aha152x: look for stuck command when resetting device Hannes Reinecke
2023-10-02 15:49 ` [PATCH 04/15] a1000u2w: do not rely on the command for inia100_device_reset() Hannes Reinecke
2023-10-02 15:49 ` [PATCH 05/15] fas216: Rework device reset to not rely on SCSI command pointer Hannes Reinecke
2023-10-02 15:49 ` [PATCH 06/15] xen-scsifront: add scsi device as argument to scsifront_do_request() Hannes Reinecke
2023-10-02 15:49 ` [PATCH 07/15] xen-scsifront: rework scsifront_action_handler() Hannes Reinecke
2023-10-02 15:49 ` [PATCH 08/15] libiscsi: use cls_session as argument for target and session reset Hannes Reinecke
2023-10-02 15:49 ` [PATCH 09/15] scsi_transport_iscsi: use session as argument for iscsi_block_scsi_eh() Hannes Reinecke
2023-10-02 15:49 ` [PATCH 10/15] snic: reserve tag for TMF Hannes Reinecke
2023-10-02 15:49 ` [PATCH 11/15] snic: allocate device reset command Hannes Reinecke
2023-10-02 15:49 ` [PATCH 12/15] snic: Use scsi_host_busy_iter() to traverse commands Hannes Reinecke
2023-10-02 15:49 ` [PATCH 13/15] fnic: allocate device reset command on the fly Hannes Reinecke
2023-10-02 15:49 ` [PATCH 14/15] fnic: use fc_block_rport() correctly Hannes Reinecke
2023-10-02 15:49 ` [PATCH 15/15] csiostor: use separate TMF command Hannes Reinecke
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231002154927.68643-1-hare@suse.de \
--to=hare@suse.de \
--cc=hch@lst.de \
--cc=james.bottomley@hansenpartnership.com \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox