FAILED: patch "[PATCH] scsi: qla2xxx: Add FC-NVMe abort processing" failed to apply to 5.10-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 5.10-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.10.y
git checkout FETCH_HEAD
git cherry-pick -x e473b3074104ee09227cfbba5f872e3ea15dd280
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2026090938-relearn-labrador-fa80@gregkh' --subject-prefix 'PATCH 5.10.y' 'HEAD^..'
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From e473b3074104ee09227cfbba5f872e3ea15dd280 Mon Sep 17 00:00:00 2001
From: Darren Trapp <[email protected]>
Date: Tue, 20 Mar 2018 23:09:33 -0700
Subject: [PATCH] scsi: qla2xxx: Add FC-NVMe abort processing
drivers/scsi/qla2xxx/qla_nvme.c +18 -18
@@ -181,24 +181,32 @@ static void qla_nvme_sp_done(void *ptr, int res)return ; } -static void qla_nvme_ls_abort (struct nvme_fc_local_port *lport, -struct nvme_fc_remote_port *rport,struct nvmefc_ls_req *fd) +static void qla_nvme_abort_work (struct work_struct *work) { -struct nvme_private *priv = fd->private; -struct qla_nvme_rport *qla_rport = rport->private; -fc_port_t *fcport = qla_rport->fcport; +struct nvme_private *priv = + container_of(work, struct nvme_private, abort_work);srb_t *sp = priv->sp; -int rval; +fc_port_t *fcport = sp->fcport;struct qla_hw_data *ha = fcport->vha->hw; +int rval; rval = ha->isp_ops->abort_command (sp);ql_dbg (ql_dbg_io, fcport->vha,0x212b , -"%s: %s LS command for sp=%p on fcport=%p rval=%x\n" , __func__, +"%s: %s command for sp=%p on fcport=%p rval=%x\n" , __func__, (rval !=QLA_SUCCESS ) ?"Failed to abort" :"Aborted" , sp, fcport, rval); } +static void qla_nvme_ls_abort (struct nvme_fc_local_port *lport, +struct nvme_fc_remote_port *rport,struct nvmefc_ls_req *fd) +{ +struct nvme_private *priv = fd->private; + +INIT_WORK (&priv->abort_work, qla_nvme_abort_work); +schedule_work (&priv->abort_work); +} +static void qla_nvme_ls_complete (struct work_struct *work) { struct nvme_private *priv =
@@ -264,18 +272,9 @@ static void qla_nvme_fcp_abort(struct nvme_fc_local_port *lport, struct nvmefc_fcp_req *fd) {struct nvme_private *priv = fd->private; -srb_t *sp = priv->sp; -int rval; -struct qla_nvme_rport *qla_rport = rport->private; -fc_port_t *fcport = qla_rport->fcport; -struct qla_hw_data *ha = fcport->vha->hw; - rval = ha->isp_ops->abort_command (sp); - -ql_dbg (ql_dbg_io, fcport->vha,0x2127 , -"%s: %s command for sp=%p on fcport=%p rval=%x\n" , __func__, - (rval !=QLA_SUCCESS ) ?"Failed to abort" :"Aborted" , - sp, fcport, rval); +INIT_WORK (&priv->abort_work, qla_nvme_abort_work); +schedule_work (&priv->abort_work); }static void qla_nvme_poll (struct nvme_fc_local_port *lport,void *hw_queue_handle)
@@ -650,6 +649,7 @@ void qla_nvme_delete(struct scsi_qla_host *vha)ql_log (ql_log_info, fcport->vha,0x2114 ,"%s: fcport=%p\n" , __func__, fcport); +nvme_fc_set_remoteport_devloss (fcport->nvme_remote_port,0 );init_completion (&fcport->nvme_del_done);nvme_fc_unregister_remoteport (fcport->nvme_remote_port);wait_for_completion (&fcport->nvme_del_done);
drivers/scsi/qla2xxx/qla_nvme.h +1 -0
@@ -31,6 +31,7 @@ struct nvme_private {struct srb *sp;struct nvmefc_ls_req *fd;struct work_struct ls_work; +struct work_struct abort_work;int comp_status; };