From: Hannes Reinecke <hare@suse.de>
To: "Martin K. Petersen" <martin.petersen@oracle.com>
Cc: Christoph Hellwig <hch@lst.de>,
James Bottomley <james.bottomley@hansenpartnership.com>,
linux-scsi@vger.kernel.org, Hannes Reinecke <hare@suse.de>
Subject: [PATCHv2 00/51] SCSI EH argument reshuffle part II
Date: Tue, 17 Aug 2021 11:14:05 +0200 [thread overview]
Message-ID: <20210817091456.73342-1-hare@suse.de> (raw)
Hi all,
finally here's the patchset to revamp the SCSI EH callback arguments
which I promised to do (some years ago ...).
(And, hint: do not order the series by date; some patches are _old_)
The overall idea is to match the scope of the eh_XXX callbacks with
the appropriate argument, eg eh_device_reset_handler() should have a
scsi device as argument etc.
Relying on the scsi command has the problem that
a) we're holding a reference on that command for the entire lifetime
of the error handling and
b) it leads to some 'interesting' driver implementations; some
higher-level EH callback implementations go through the list of
outstanding commands and try to abort this particular command only;
makes one wonder what'll happen to the other commands ...
However, this patchset has the nice side-effect that we don't need to
allocate an out-of-order scsi command in scsi_ioctl_reset(), but can
call the function directly.
This is the second part which rearranges the individual EH handler
implementation to not rely on the passed in scsi command and do
the final conversion to the new calling convention.
The entire patchset can be found at
https://git.kernel.org/hare/scsi-devel/h/eh-rework.v2
As usual, comments and reviews are welcome.
Changes to the original submission:
- Updated to 5.15/scsi-queue
- Add patches for mpi3mr driver
Hannes Reinecke (51):
lpfc: kill lpfc_bus_reset_handler
lpfc: drop lpfc_no_handler()
sym53c8xx_2: split off bus reset from host reset
ips: Do not try to abort command from host reset
snic: reserve tag for TMF
qla1280: separate out host reset function from qla1280_error_action()
megaraid: pass in NULL scb for host reset
zfcp: open-code fc_block_scsi_eh() for host reset
mpi3mr: split off bus_reset function from host_reset
scsi: Use Scsi_Host as argument for eh_host_reset_handler
mptfc: simplify mpt_fc_block_error_handler()
mptfusion: correct definitions for mptscsih_dev_reset()
mptfc: open-code mptfc_block_error_handler() for bus reset
pmcraid: Select device in pmcraid_eh_bus_reset_handler()
qla2xxx: open-code qla2xxx_generic_reset()
qla2xxx: Do not call fc_block_scsi_eh() during bus reset
visorhba: select first device on the bus for bus_reset()
ncr53c8xx: remove 'sync_reset' argument from ncr_reset_bus()
ncr53c8xx: Complete all commands during bus reset
ncr53c8xx: Remove unused code
scsi: Use Scsi_Host and channel number as argument for
eh_bus_reset_handler()
libiscsi: use cls_session as argument for target and session reset
bnx2fc: Do not rely on a scsi command when issueing lun or target
reset
ibmvfc: open-code reset loop for target reset
lpfc: use fc_block_rport()
lpfc: use rport as argument for lpfc_send_taskmgmt()
lpfc: use rport as argument for lpfc_chk_tgt_mapped()
csiostor: use fc_block_rport()
qla2xxx: use fc_block_rport()
fc_fcp: use fc_block_rport()
qedf: use fc rport as argument for qedf_initiate_tmf()
sym53c8xx_2: rework reset handling
bfa: Do not use scsi command to signal TMF status
scsi_transport_iscsi: use session as argument for
iscsi_block_scsi_eh()
pmcraid: select first available device for target reset
scsi: Use scsi_target as argument for eh_target_reset_handler()
aha152x: look for stuck command when resetting device
fnic: use dedicated device reset command
a1000u2w: do not rely on the command for inia100_device_reset()
aic7xxx: use scsi device as argument for BUILD_SCSIID()
aic79xx: use scsi device as argument for BUILD_SCSIID()
aic7xxx: do not reference scsi command when resetting device
aic79xx: do not reference scsi command when resetting device
xen-scsifront: add scsi device as argument to scsifront_do_request()
fas216: Rework device reset to not rely on SCSI command pointer
csiostor: use separate TMF command
snic: use dedicated device reset command
snic: Use scsi_host_busy_iter() to traverse commands
scsi: Move eh_device_reset_handler() to use scsi_device as argument
scsi: Do not allocate scsi command in scsi_ioctl_reset()
scsi_error: streamline scsi_eh_bus_device_reset()
Documentation/scsi/scsi_eh.rst | 16 +-
Documentation/scsi/scsi_mid_low_api.rst | 31 +-
drivers/infiniband/ulp/srp/ib_srp.c | 12 +-
drivers/message/fusion/mptfc.c | 99 ++++--
drivers/message/fusion/mptsas.c | 10 +-
drivers/message/fusion/mptscsih.c | 115 ++++--
drivers/message/fusion/mptscsih.h | 7 +-
drivers/message/fusion/mptspi.c | 8 +-
drivers/s390/scsi/zfcp_scsi.c | 41 ++-
drivers/scsi/3w-9xxx.c | 11 +-
drivers/scsi/3w-sas.c | 11 +-
drivers/scsi/3w-xxxx.c | 11 +-
drivers/scsi/53c700.c | 39 +-
drivers/scsi/BusLogic.c | 14 +-
drivers/scsi/NCR5380.c | 3 +-
drivers/scsi/a100u2w.c | 52 +--
drivers/scsi/aacraid/linit.c | 35 +-
drivers/scsi/advansys.c | 26 +-
drivers/scsi/aha152x.c | 34 +-
drivers/scsi/aha1542.c | 30 +-
drivers/scsi/aic7xxx/aic79xx_osm.c | 64 ++--
drivers/scsi/aic7xxx/aic7xxx_osm.c | 120 ++++---
drivers/scsi/arcmsr/arcmsr_hba.c | 6 +-
drivers/scsi/arm/acornscsi.c | 8 +-
drivers/scsi/arm/fas216.c | 55 ++-
drivers/scsi/arm/fas216.h | 17 +-
drivers/scsi/atari_scsi.c | 4 +-
drivers/scsi/be2iscsi/be_main.c | 18 +-
drivers/scsi/bfa/bfad_im.c | 113 +++---
drivers/scsi/bfa/bfad_im.h | 2 +
drivers/scsi/bnx2fc/bnx2fc.h | 5 +-
drivers/scsi/bnx2fc/bnx2fc_hwi.c | 14 +-
drivers/scsi/bnx2fc/bnx2fc_io.c | 95 +++--
drivers/scsi/csiostor/csio_hw.h | 2 +
drivers/scsi/csiostor/csio_init.c | 2 +-
drivers/scsi/csiostor/csio_scsi.c | 52 ++-
drivers/scsi/cxlflash/main.c | 10 +-
drivers/scsi/dc395x.c | 25 +-
drivers/scsi/dpt_i2o.c | 43 +--
drivers/scsi/dpti.h | 6 +-
drivers/scsi/esas2r/esas2r.h | 8 +-
drivers/scsi/esas2r/esas2r_main.c | 55 +--
drivers/scsi/esp_scsi.c | 8 +-
drivers/scsi/fdomain.c | 3 +-
drivers/scsi/fnic/fnic.h | 4 +-
drivers/scsi/fnic/fnic_scsi.c | 149 +++-----
drivers/scsi/hpsa.c | 14 +-
drivers/scsi/hptiop.c | 6 +-
drivers/scsi/ibmvscsi/ibmvfc.c | 55 +--
drivers/scsi/ibmvscsi/ibmvscsi.c | 23 +-
drivers/scsi/imm.c | 6 +-
drivers/scsi/initio.c | 11 +-
drivers/scsi/ipr.c | 35 +-
drivers/scsi/ips.c | 40 +--
drivers/scsi/libfc/fc_fcp.c | 18 +-
drivers/scsi/libiscsi.c | 38 +-
drivers/scsi/libsas/sas_scsi_host.c | 21 +-
drivers/scsi/lpfc/lpfc_scsi.c | 160 ++-------
drivers/scsi/mac53c94.c | 8 +-
drivers/scsi/megaraid.c | 46 +--
drivers/scsi/megaraid.h | 2 +-
drivers/scsi/megaraid/megaraid_mbox.c | 14 +-
drivers/scsi/megaraid/megaraid_sas.h | 3 +-
drivers/scsi/megaraid/megaraid_sas_base.c | 44 +--
drivers/scsi/megaraid/megaraid_sas_fusion.c | 56 +--
drivers/scsi/mesh.c | 10 +-
drivers/scsi/mpi3mr/mpi3mr_os.c | 144 ++++----
drivers/scsi/mpt3sas/mpt3sas_scsih.c | 80 ++---
drivers/scsi/mvumi.c | 7 +-
drivers/scsi/myrb.c | 3 +-
drivers/scsi/myrs.c | 3 +-
drivers/scsi/ncr53c8xx.c | 203 +----------
drivers/scsi/nsp32.c | 12 +-
drivers/scsi/pcmcia/nsp_cs.c | 10 +-
drivers/scsi/pcmcia/nsp_cs.h | 6 +-
drivers/scsi/pcmcia/qlogic_stub.c | 4 +-
drivers/scsi/pcmcia/sym53c500_cs.c | 8 +-
drivers/scsi/pmcraid.c | 73 +++-
drivers/scsi/ppa.c | 6 +-
drivers/scsi/qedf/qedf.h | 5 +-
drivers/scsi/qedf/qedf_io.c | 80 ++---
drivers/scsi/qedf/qedf_main.c | 24 +-
drivers/scsi/qedi/qedi_iscsi.c | 3 +-
drivers/scsi/qla1280.c | 74 ++--
drivers/scsi/qla2xxx/qla_os.c | 155 ++++----
drivers/scsi/qla4xxx/ql4_os.c | 85 +++--
drivers/scsi/qlogicfas408.c | 10 +-
drivers/scsi/qlogicfas408.h | 2 +-
drivers/scsi/qlogicpti.c | 3 +-
drivers/scsi/scsi_debug.c | 78 ++--
drivers/scsi/scsi_error.c | 160 +++++----
drivers/scsi/scsi_transport_iscsi.c | 6 +-
drivers/scsi/smartpqi/smartpqi_init.c | 11 +-
drivers/scsi/snic/snic.h | 6 +-
drivers/scsi/snic/snic_main.c | 3 +
drivers/scsi/snic/snic_scsi.c | 333 ++++++++----------
drivers/scsi/stex.c | 7 +-
drivers/scsi/storvsc_drv.c | 4 +-
drivers/scsi/sym53c8xx_2/sym_glue.c | 190 ++++++----
drivers/scsi/ufs/ufshcd.c | 14 +-
drivers/scsi/virtio_scsi.c | 12 +-
drivers/scsi/vmw_pvscsi.c | 20 +-
drivers/scsi/wd33c93.c | 5 +-
drivers/scsi/wd33c93.h | 2 +-
drivers/scsi/wd719x.c | 17 +-
drivers/scsi/xen-scsifront.c | 53 +--
drivers/staging/rts5208/rtsx.c | 4 +-
.../staging/unisys/visorhba/visorhba_main.c | 40 +--
drivers/target/loopback/tcm_loop.c | 17 +-
drivers/usb/image/microtek.c | 4 +-
drivers/usb/storage/scsiglue.c | 8 +-
drivers/usb/storage/uas.c | 3 +-
include/scsi/libfc.h | 4 +-
include/scsi/libiscsi.h | 6 +-
include/scsi/libsas.h | 4 +-
include/scsi/scsi_host.h | 8 +-
include/scsi/scsi_transport_iscsi.h | 2 +-
117 files changed, 1960 insertions(+), 2164 deletions(-)
--
2.29.2
next reply other threads:[~2021-08-17 9:16 UTC|newest]
Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-17 9:14 Hannes Reinecke [this message]
2021-08-17 9:14 ` [PATCH 01/51] lpfc: kill lpfc_bus_reset_handler Hannes Reinecke
2021-08-17 17:37 ` James Smart
2021-08-17 9:14 ` [PATCH 02/51] lpfc: drop lpfc_no_handler() Hannes Reinecke
2021-08-17 12:13 ` Christoph Hellwig
2021-08-17 17:36 ` James Smart
2021-08-17 9:14 ` [PATCH 03/51] sym53c8xx_2: split off bus reset from host reset Hannes Reinecke
2021-08-17 12:18 ` Christoph Hellwig
2021-08-17 9:14 ` [PATCH 04/51] ips: Do not try to abort command " Hannes Reinecke
2021-08-17 9:14 ` [PATCH 05/51] snic: reserve tag for TMF Hannes Reinecke
2021-08-17 12:21 ` Christoph Hellwig
2021-08-17 9:14 ` [PATCH 06/51] qla1280: separate out host reset function from qla1280_error_action() Hannes Reinecke
2021-08-17 12:22 ` Christoph Hellwig
2021-08-17 14:05 ` Hannes Reinecke
2021-08-17 9:14 ` [PATCH 07/51] megaraid: pass in NULL scb for host reset Hannes Reinecke
2021-08-17 12:26 ` Christoph Hellwig
2021-08-17 13:46 ` Hannes Reinecke
2021-08-17 9:14 ` [PATCH 08/51] zfcp: open-code fc_block_scsi_eh() " Hannes Reinecke
2021-08-17 11:53 ` Benjamin Block
2021-08-17 12:54 ` Hannes Reinecke
2021-08-17 14:03 ` Steffen Maier
2021-08-17 14:10 ` Hannes Reinecke
2021-08-18 11:00 ` Steffen Maier
2021-08-18 11:58 ` Hannes Reinecke
2021-08-17 9:14 ` [PATCH 09/51] mpi3mr: split off bus_reset function from host_reset Hannes Reinecke
2021-08-17 9:14 ` [PATCH 10/51] scsi: Use Scsi_Host as argument for eh_host_reset_handler Hannes Reinecke
2021-08-17 14:55 ` Steffen Maier
2021-08-19 18:34 ` Bart Van Assche
2021-08-17 9:14 ` [PATCH 11/51] mptfc: simplify mpt_fc_block_error_handler() Hannes Reinecke
2021-08-17 9:14 ` [PATCH 12/51] mptfusion: correct definitions for mptscsih_dev_reset() Hannes Reinecke
2021-08-17 9:14 ` [PATCH 13/51] mptfc: open-code mptfc_block_error_handler() for bus reset Hannes Reinecke
2021-08-17 9:14 ` [PATCH 14/51] pmcraid: Select device in pmcraid_eh_bus_reset_handler() Hannes Reinecke
2021-08-17 9:14 ` [PATCH 15/51] qla2xxx: open-code qla2xxx_generic_reset() Hannes Reinecke
2021-08-17 9:14 ` [PATCH 16/51] qla2xxx: Do not call fc_block_scsi_eh() during bus reset Hannes Reinecke
2021-08-17 9:14 ` [PATCH 17/51] visorhba: select first device on the bus for bus_reset() Hannes Reinecke
2021-08-17 9:14 ` [PATCH 18/51] ncr53c8xx: remove 'sync_reset' argument from ncr_reset_bus() Hannes Reinecke
2021-08-17 9:14 ` [PATCH 19/51] ncr53c8xx: Complete all commands during bus reset Hannes Reinecke
2021-08-17 9:14 ` [PATCH 20/51] ncr53c8xx: Remove unused code Hannes Reinecke
2021-08-17 9:14 ` [PATCH 21/51] scsi: Use Scsi_Host and channel number as argument for eh_bus_reset_handler() Hannes Reinecke
2021-08-17 9:14 ` [PATCH 22/51] libiscsi: use cls_session as argument for target and session reset Hannes Reinecke
2021-08-17 9:14 ` [PATCH 23/51] bnx2fc: Do not rely on a scsi command when issueing lun or target reset Hannes Reinecke
2021-08-17 9:14 ` [PATCH 24/51] ibmvfc: open-code reset loop for " Hannes Reinecke
2021-08-17 9:14 ` [PATCH 25/51] lpfc: use fc_block_rport() Hannes Reinecke
2021-08-18 16:35 ` James Smart
2021-08-17 9:14 ` [PATCH 26/51] lpfc: use rport as argument for lpfc_send_taskmgmt() Hannes Reinecke
2021-08-18 16:35 ` James Smart
2021-08-17 9:14 ` [PATCH 27/51] lpfc: use rport as argument for lpfc_chk_tgt_mapped() Hannes Reinecke
2021-08-18 16:36 ` James Smart
2021-08-17 9:14 ` [PATCH 28/51] csiostor: use fc_block_rport() Hannes Reinecke
2021-08-17 9:14 ` [PATCH 29/51] qla2xxx: " Hannes Reinecke
2021-08-17 9:14 ` [PATCH 30/51] fc_fcp: " Hannes Reinecke
2021-08-17 9:14 ` [PATCH 31/51] qedf: use fc rport as argument for qedf_initiate_tmf() Hannes Reinecke
2021-08-17 9:14 ` [PATCH 32/51] sym53c8xx_2: rework reset handling Hannes Reinecke
2021-08-17 9:14 ` [PATCH 33/51] bfa: Do not use scsi command to signal TMF status Hannes Reinecke
2021-08-17 9:14 ` [PATCH 34/51] scsi_transport_iscsi: use session as argument for iscsi_block_scsi_eh() Hannes Reinecke
2021-08-17 9:14 ` [PATCH 35/51] pmcraid: select first available device for target reset Hannes Reinecke
2021-08-17 9:14 ` [PATCH 36/51] scsi: Use scsi_target as argument for eh_target_reset_handler() Hannes Reinecke
2021-08-17 15:53 ` Steffen Maier
2021-08-18 16:37 ` James Smart
2021-08-19 18:37 ` Bart Van Assche
2021-08-17 9:14 ` [PATCH 37/51] aha152x: look for stuck command when resetting device Hannes Reinecke
2021-08-18 0:43 ` Finn Thain
2021-08-17 9:14 ` [PATCH 38/51] fnic: use dedicated device reset command Hannes Reinecke
2021-08-17 9:14 ` [PATCH 39/51] a1000u2w: do not rely on the command for inia100_device_reset() Hannes Reinecke
2021-08-17 9:14 ` [PATCH 40/51] aic7xxx: use scsi device as argument for BUILD_SCSIID() Hannes Reinecke
2021-08-17 9:14 ` [PATCH 41/51] aic79xx: " Hannes Reinecke
2021-08-17 9:14 ` [PATCH 42/51] aic7xxx: do not reference scsi command when resetting device Hannes Reinecke
2021-08-17 9:14 ` [PATCH 43/51] aic79xx: " Hannes Reinecke
2021-08-17 9:14 ` [PATCH 44/51] xen-scsifront: add scsi device as argument to scsifront_do_request() Hannes Reinecke
2021-08-17 9:14 ` [PATCH 45/51] fas216: Rework device reset to not rely on SCSI command pointer Hannes Reinecke
2021-08-17 9:14 ` [PATCH 46/51] csiostor: use separate TMF command Hannes Reinecke
2021-08-17 9:14 ` [PATCH 47/51] snic: use dedicated device reset command Hannes Reinecke
2021-08-17 9:14 ` [PATCH 48/51] snic: Use scsi_host_busy_iter() to traverse commands Hannes Reinecke
2021-08-17 9:14 ` [PATCH 49/51] scsi: Move eh_device_reset_handler() to use scsi_device as argument Hannes Reinecke
2021-08-17 16:13 ` Steffen Maier
2021-08-17 18:09 ` Hannes Reinecke
2021-08-17 9:14 ` [PATCH 50/51] scsi: Do not allocate scsi command in scsi_ioctl_reset() Hannes Reinecke
2021-08-17 9:14 ` [PATCH 51/51] scsi_error: streamline scsi_eh_bus_device_reset() Hannes Reinecke
2021-08-17 12:13 ` [PATCHv2 00/51] SCSI EH argument reshuffle part II Christoph Hellwig
2021-08-17 12:55 ` Hannes Reinecke
2022-02-23 12:49 ` Christoph Hellwig
2022-02-23 13:03 ` Hannes Reinecke
2022-02-23 13:05 ` Christoph Hellwig
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=20210817091456.73342-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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.