]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
fix up duplicates in 5.15 queue
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 15 Aug 2022 09:10:53 +0000 (11:10 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 15 Aug 2022 09:10:53 +0000 (11:10 +0200)
20 files changed:
queue-5.15/__follow_mount_rcu-verify-that-mount_lock-remains-un.patch [deleted file]
queue-5.15/ftrace-x86-add-back-ftrace_expected-assignment.patch-22490 [deleted file]
queue-5.15/input-gscps2-check-return-value-of-ioremap-in-gscps2.patch [deleted file]
queue-5.15/scsi-qla2xxx-edif-fix-dropped-ike-message.patch [deleted file]
queue-5.15/scsi-qla2xxx-fix-crash-due-to-stale-srb-access-aroun.patch [deleted file]
queue-5.15/scsi-qla2xxx-fix-discovery-issues-in-fc-al-topology.patch-12842 [deleted file]
queue-5.15/scsi-qla2xxx-fix-erroneous-mailbox-timeout-after-pci.patch [deleted file]
queue-5.15/scsi-qla2xxx-fix-excessive-i-o-error-messages-by-def.patch [deleted file]
queue-5.15/scsi-qla2xxx-fix-imbalance-vha-vref_count.patch-21291 [deleted file]
queue-5.15/scsi-qla2xxx-fix-losing-fcp-2-targets-during-port-pe.patch [deleted file]
queue-5.15/scsi-qla2xxx-fix-losing-fcp-2-targets-on-long-port-d.patch [deleted file]
queue-5.15/scsi-qla2xxx-fix-losing-target-when-it-reappears-dur.patch [deleted file]
queue-5.15/scsi-qla2xxx-fix-response-queue-handler-reading-stal.patch [deleted file]
queue-5.15/scsi-qla2xxx-turn-off-multi-queue-for-8g-adapters.patch-24759 [deleted file]
queue-5.15/scsi-qla2xxx-update-manufacturer-details.patch [deleted file]
queue-5.15/scsi-qla2xxx-wind-down-adapter-after-pcie-error.patch-6065 [deleted file]
queue-5.15/series
queue-5.15/spmi-trace-fix-stack-out-of-bound-access-in-spmi-tra.patch [deleted file]
queue-5.15/x86-kprobes-update-kcb-status-flag-after-singlestepp.patch [deleted file]
queue-5.15/x86-olpc-fix-logical-not-is-only-applied-to-the-left.patch [deleted file]

diff --git a/queue-5.15/__follow_mount_rcu-verify-that-mount_lock-remains-un.patch b/queue-5.15/__follow_mount_rcu-verify-that-mount_lock-remains-un.patch
deleted file mode 100644 (file)
index eeb8af4..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-From e40d0d60d2c1e1cf43d222db49ed94322e32d6f7 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 4 Jul 2022 17:26:29 -0400
-Subject: __follow_mount_rcu(): verify that mount_lock remains unchanged
-
-From: Al Viro <viro@zeniv.linux.org.uk>
-
-[ Upstream commit 20aac6c60981f5bfacd66661d090d907bf1482f0 ]
-
-Validate mount_lock seqcount as soon as we cross into mount in RCU
-mode.  Sure, ->mnt_root is pinned and will remain so until we
-do rcu_read_unlock() anyway, and we will eventually fail to unlazy if
-the mount_lock had been touched, but we might run into a hard error
-(e.g. -ENOENT) before trying to unlazy.  And it's possible to end
-up with RCU pathwalk racing with rename() and umount() in a way
-that would fail with -ENOENT while non-RCU pathwalk would've
-succeeded with any timings.
-
-Once upon a time we hadn't needed that, but analysis had been subtle,
-brittle and went out of window as soon as RENAME_EXCHANGE had been
-added.
-
-It's narrow, hard to hit and won't get you anything other than
-stray -ENOENT that could be arranged in much easier way with the
-same priveleges, but it's a bug all the same.
-
-Cc: stable@kernel.org
-X-sky-is-falling: unlikely
-Fixes: da1ce0670c14 "vfs: add cross-rename"
-Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- fs/namei.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/fs/namei.c b/fs/namei.c
-index 66e0fe262a89..1fd854d4cd2c 100644
---- a/fs/namei.c
-+++ b/fs/namei.c
-@@ -1461,6 +1461,8 @@ static bool __follow_mount_rcu(struct nameidata *nd, struct path *path,
-                                * becoming unpinned.
-                                */
-                               flags = dentry->d_flags;
-+                              if (read_seqretry(&mount_lock, nd->m_seq))
-+                                      return false;
-                               continue;
-                       }
-                       if (read_seqretry(&mount_lock, nd->m_seq))
--- 
-2.35.1
-
diff --git a/queue-5.15/ftrace-x86-add-back-ftrace_expected-assignment.patch-22490 b/queue-5.15/ftrace-x86-add-back-ftrace_expected-assignment.patch-22490
deleted file mode 100644 (file)
index 713ecf7..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-From 585d0f39ee37d8e804082139876ac4975e04209a Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 26 Jul 2022 10:18:51 -0400
-Subject: ftrace/x86: Add back ftrace_expected assignment
-
-From: Steven Rostedt (Google) <rostedt@goodmis.org>
-
-[ Upstream commit ac6c1b2ca77e722a1e5d651f12f437f2f237e658 ]
-
-When a ftrace_bug happens (where ftrace fails to modify a location) it is
-helpful to have what was at that location as well as what was expected to
-be there.
-
-But with the conversion to text_poke() the variable that assigns the
-expected for debugging was dropped. Unfortunately, I noticed this when I
-needed it. Add it back.
-
-Link: https://lkml.kernel.org/r/20220726101851.069d2e70@gandalf.local.home
-
-Cc: "x86@kernel.org" <x86@kernel.org>
-Cc: Peter Zijlstra <peterz@infradead.org>
-Cc: Thomas Gleixner <tglx@linutronix.de>
-Cc: Ingo Molnar <mingo@kernel.org>
-Cc: Borislav Petkov <bp@alien8.de>
-Cc: "H. Peter Anvin" <hpa@zytor.com>
-Cc: Andrew Morton <akpm@linux-foundation.org>
-Cc: stable@vger.kernel.org
-Fixes: 768ae4406a5c ("x86/ftrace: Use text_poke()")
-Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/x86/kernel/ftrace.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c
-index 74c2f88a43d0..ceab28277546 100644
---- a/arch/x86/kernel/ftrace.c
-+++ b/arch/x86/kernel/ftrace.c
-@@ -93,6 +93,7 @@ static int ftrace_verify_code(unsigned long ip, const char *old_code)
-       /* Make sure it is what we expect it to be */
-       if (memcmp(cur_code, old_code, MCOUNT_INSN_SIZE) != 0) {
-+              ftrace_expected = old_code;
-               WARN_ON(1);
-               return -EINVAL;
-       }
--- 
-2.35.1
-
diff --git a/queue-5.15/input-gscps2-check-return-value-of-ioremap-in-gscps2.patch b/queue-5.15/input-gscps2-check-return-value-of-ioremap-in-gscps2.patch
deleted file mode 100644 (file)
index 04ef9ba..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-From 3650b44badc32848799e20d0626bf23914a67b77 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 2 Aug 2022 15:20:33 +0800
-Subject: Input: gscps2 - check return value of ioremap() in gscps2_probe()
-
-From: Xie Shaowen <studentxswpy@163.com>
-
-[ Upstream commit e61b3125a4f036b3c6b87ffd656fc1ab00440ae9 ]
-
-The function ioremap() in gscps2_probe() can fail, so
-its return value should be checked.
-
-Fixes: 4bdc0d676a643 ("remove ioremap_nocache and devm_ioremap_nocache")
-Cc: <stable@vger.kernel.org> # v5.6+
-Reported-by: Hacash Robot <hacashRobot@santino.com>
-Signed-off-by: Xie Shaowen <studentxswpy@163.com>
-Signed-off-by: Helge Deller <deller@gmx.de>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/input/serio/gscps2.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/drivers/input/serio/gscps2.c b/drivers/input/serio/gscps2.c
-index a9065c6ab550..da2c67cb8642 100644
---- a/drivers/input/serio/gscps2.c
-+++ b/drivers/input/serio/gscps2.c
-@@ -350,6 +350,10 @@ static int __init gscps2_probe(struct parisc_device *dev)
-       ps2port->port = serio;
-       ps2port->padev = dev;
-       ps2port->addr = ioremap(hpa, GSC_STATUS + 4);
-+      if (!ps2port->addr) {
-+              ret = -ENOMEM;
-+              goto fail_nomem;
-+      }
-       spin_lock_init(&ps2port->lock);
-       gscps2_reset(ps2port);
--- 
-2.35.1
-
diff --git a/queue-5.15/scsi-qla2xxx-edif-fix-dropped-ike-message.patch b/queue-5.15/scsi-qla2xxx-edif-fix-dropped-ike-message.patch
deleted file mode 100644 (file)
index e322f30..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-From ce3eabf3448d5c7b76e15c2aab5be386774cf6fc Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 12 Jul 2022 22:20:40 -0700
-Subject: scsi: qla2xxx: edif: Fix dropped IKE message
-
-From: Quinn Tran <qutran@marvell.com>
-
-[ Upstream commit c019cd656e717349ff22d0c41d6fbfc773f48c52 ]
-
-This patch fixes IKE message being dropped due to error in processing Purex
-IOCB and Continuation IOCBs.
-
-Link: https://lore.kernel.org/r/20220713052045.10683-6-njavali@marvell.com
-Fixes: fac2807946c1 ("scsi: qla2xxx: edif: Add extraction of auth_els from the wire")
-Cc: stable@vger.kernel.org
-Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
-Signed-off-by: Quinn Tran <qutran@marvell.com>
-Signed-off-by: Nilesh Javali <njavali@marvell.com>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/scsi/qla2xxx/qla_isr.c | 54 +++++++++++++++-------------------
- 1 file changed, 24 insertions(+), 30 deletions(-)
-
-diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
-index ecbc0a5ffb3f..59f5918dca95 100644
---- a/drivers/scsi/qla2xxx/qla_isr.c
-+++ b/drivers/scsi/qla2xxx/qla_isr.c
-@@ -3707,12 +3707,11 @@ void qla24xx_nvme_ls4_iocb(struct scsi_qla_host *vha,
-  * Return: 0 all iocbs has arrived, xx- all iocbs have not arrived.
-  */
- static int qla_chk_cont_iocb_avail(struct scsi_qla_host *vha,
--      struct rsp_que *rsp, response_t *pkt)
-+      struct rsp_que *rsp, response_t *pkt, u32 rsp_q_in)
- {
--      int start_pkt_ring_index, end_pkt_ring_index, n_ring_index;
--      response_t *end_pkt;
-+      int start_pkt_ring_index;
-+      u32 iocb_cnt = 0;
-       int rc = 0;
--      u32 rsp_q_in;
-       if (pkt->entry_count == 1)
-               return rc;
-@@ -3723,34 +3722,18 @@ static int qla_chk_cont_iocb_avail(struct scsi_qla_host *vha,
-       else
-               start_pkt_ring_index = rsp->ring_index - 1;
--      if ((start_pkt_ring_index + pkt->entry_count) >= rsp->length)
--              end_pkt_ring_index = start_pkt_ring_index + pkt->entry_count -
--                      rsp->length - 1;
-+      if (rsp_q_in < start_pkt_ring_index)
-+              /* q in ptr is wrapped */
-+              iocb_cnt = rsp->length - start_pkt_ring_index + rsp_q_in;
-       else
--              end_pkt_ring_index = start_pkt_ring_index + pkt->entry_count - 1;
-+              iocb_cnt = rsp_q_in - start_pkt_ring_index;
--      end_pkt = rsp->ring + end_pkt_ring_index;
--
--      /*  next pkt = end_pkt + 1 */
--      n_ring_index = end_pkt_ring_index + 1;
--      if (n_ring_index >= rsp->length)
--              n_ring_index = 0;
--
--      rsp_q_in = rsp->qpair->use_shadow_reg ? *rsp->in_ptr :
--              rd_reg_dword(rsp->rsp_q_in);
--
--      /* rsp_q_in is either wrapped or pointing beyond endpkt */
--      if ((rsp_q_in < start_pkt_ring_index && rsp_q_in < n_ring_index) ||
--                      rsp_q_in >= n_ring_index)
--              /* all IOCBs arrived. */
--              rc = 0;
--      else
-+      if (iocb_cnt < pkt->entry_count)
-               rc = -EIO;
--      ql_dbg(ql_dbg_init + ql_dbg_verbose, vha, 0x5091,
--          "%s - ring %p pkt %p end pkt %p entry count %#x rsp_q_in %d rc %d\n",
--          __func__, rsp->ring, pkt, end_pkt, pkt->entry_count,
--          rsp_q_in, rc);
-+      ql_dbg(ql_dbg_init, vha, 0x5091,
-+             "%s - ring %p pkt %p entry count %d iocb_cnt %d rsp_q_in %d rc %d\n",
-+             __func__, rsp->ring, pkt, pkt->entry_count, iocb_cnt, rsp_q_in, rc);
-       return rc;
- }
-@@ -3767,7 +3750,7 @@ void qla24xx_process_response_queue(struct scsi_qla_host *vha,
-       struct qla_hw_data *ha = vha->hw;
-       struct purex_entry_24xx *purex_entry;
-       struct purex_item *pure_item;
--      u16 rsp_in = 0;
-+      u16 rsp_in = 0, cur_ring_index;
-       int follow_inptr, is_shadow_hba;
-       if (!ha->flags.fw_started)
-@@ -3798,6 +3781,7 @@ void qla24xx_process_response_queue(struct scsi_qla_host *vha,
-                      (!follow_inptr &&
-                       rsp->ring_ptr->signature != RESPONSE_PROCESSED)) {
-               pkt = (struct sts_entry_24xx *)rsp->ring_ptr;
-+              cur_ring_index = rsp->ring_index;
-               rsp->ring_index++;
-               if (rsp->ring_index == rsp->length) {
-@@ -3918,7 +3902,17 @@ void qla24xx_process_response_queue(struct scsi_qla_host *vha,
-                               break;
-                       case ELS_AUTH_ELS:
--                              if (qla_chk_cont_iocb_avail(vha, rsp, (response_t *)pkt)) {
-+                              if (qla_chk_cont_iocb_avail(vha, rsp, (response_t *)pkt, rsp_in)) {
-+                                      /*
-+                                       * ring_ptr and ring_index were
-+                                       * pre-incremented above. Reset them
-+                                       * back to current. Wait for next
-+                                       * interrupt with all IOCBs to arrive
-+                                       * and re-process.
-+                                       */
-+                                      rsp->ring_ptr = (response_t *)pkt;
-+                                      rsp->ring_index = cur_ring_index;
-+
-                                       ql_dbg(ql_dbg_init, vha, 0x5091,
-                                           "Defer processing ELS opcode %#x...\n",
-                                           purex_entry->els_frame_payload[3]);
--- 
-2.35.1
-
diff --git a/queue-5.15/scsi-qla2xxx-fix-crash-due-to-stale-srb-access-aroun.patch b/queue-5.15/scsi-qla2xxx-fix-crash-due-to-stale-srb-access-aroun.patch
deleted file mode 100644 (file)
index 9d5b4a0..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-From 5022d7f75a959f35a10caa156f7872f76f101346 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 15 Jun 2022 22:35:02 -0700
-Subject: scsi: qla2xxx: Fix crash due to stale SRB access around I/O timeouts
-
-From: Arun Easi <aeasi@marvell.com>
-
-[ Upstream commit c39587bc0abaf16593f7abcdf8aeec3c038c7d52 ]
-
-Ensure SRB is returned during I/O timeout error escalation. If that is not
-possible fail the escalation path.
-
-Following crash stack was seen:
-
-BUG: unable to handle kernel paging request at 0000002f56aa90f8
-IP: qla_chk_edif_rx_sa_delete_pending+0x14/0x30 [qla2xxx]
-Call Trace:
- ? qla2x00_status_entry+0x19f/0x1c50 [qla2xxx]
- ? qla2x00_start_sp+0x116/0x1170 [qla2xxx]
- ? dma_pool_alloc+0x1d6/0x210
- ? mempool_alloc+0x54/0x130
- ? qla24xx_process_response_queue+0x548/0x12b0 [qla2xxx]
- ? qla_do_work+0x2d/0x40 [qla2xxx]
- ? process_one_work+0x14c/0x390
-
-Link: https://lore.kernel.org/r/20220616053508.27186-6-njavali@marvell.com
-Fixes: d74595278f4a ("scsi: qla2xxx: Add multiple queue pair functionality.")
-Cc: stable@vger.kernel.org
-Signed-off-by: Arun Easi <aeasi@marvell.com>
-Signed-off-by: Nilesh Javali <njavali@marvell.com>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/scsi/qla2xxx/qla_os.c | 43 +++++++++++++++++++++++++----------
- 1 file changed, 31 insertions(+), 12 deletions(-)
-
-diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
-index eca622f3e8c1..6542a258cb75 100644
---- a/drivers/scsi/qla2xxx/qla_os.c
-+++ b/drivers/scsi/qla2xxx/qla_os.c
-@@ -1338,21 +1338,20 @@ qla2xxx_eh_abort(struct scsi_cmnd *cmd)
- /*
-  * Returns: QLA_SUCCESS or QLA_FUNCTION_FAILED.
-  */
--int
--qla2x00_eh_wait_for_pending_commands(scsi_qla_host_t *vha, unsigned int t,
--      uint64_t l, enum nexus_wait_type type)
-+static int
-+__qla2x00_eh_wait_for_pending_commands(struct qla_qpair *qpair, unsigned int t,
-+                                     uint64_t l, enum nexus_wait_type type)
- {
-       int cnt, match, status;
-       unsigned long flags;
--      struct qla_hw_data *ha = vha->hw;
--      struct req_que *req;
-+      scsi_qla_host_t *vha = qpair->vha;
-+      struct req_que *req = qpair->req;
-       srb_t *sp;
-       struct scsi_cmnd *cmd;
-       status = QLA_SUCCESS;
--      spin_lock_irqsave(&ha->hardware_lock, flags);
--      req = vha->req;
-+      spin_lock_irqsave(qpair->qp_lock_ptr, flags);
-       for (cnt = 1; status == QLA_SUCCESS &&
-               cnt < req->num_outstanding_cmds; cnt++) {
-               sp = req->outstanding_cmds[cnt];
-@@ -1379,12 +1378,32 @@ qla2x00_eh_wait_for_pending_commands(scsi_qla_host_t *vha, unsigned int t,
-               if (!match)
-                       continue;
--              spin_unlock_irqrestore(&ha->hardware_lock, flags);
-+              spin_unlock_irqrestore(qpair->qp_lock_ptr, flags);
-               status = qla2x00_eh_wait_on_command(cmd);
--              spin_lock_irqsave(&ha->hardware_lock, flags);
-+              spin_lock_irqsave(qpair->qp_lock_ptr, flags);
-       }
--      spin_unlock_irqrestore(&ha->hardware_lock, flags);
-+      spin_unlock_irqrestore(qpair->qp_lock_ptr, flags);
-+
-+      return status;
-+}
-+
-+int
-+qla2x00_eh_wait_for_pending_commands(scsi_qla_host_t *vha, unsigned int t,
-+                                   uint64_t l, enum nexus_wait_type type)
-+{
-+      struct qla_qpair *qpair;
-+      struct qla_hw_data *ha = vha->hw;
-+      int i, status = QLA_SUCCESS;
-+      status = __qla2x00_eh_wait_for_pending_commands(ha->base_qpair, t, l,
-+                                                      type);
-+      for (i = 0; status == QLA_SUCCESS && i < ha->max_qpairs; i++) {
-+              qpair = ha->queue_pair_map[i];
-+              if (!qpair)
-+                      continue;
-+              status = __qla2x00_eh_wait_for_pending_commands(qpair, t, l,
-+                                                              type);
-+      }
-       return status;
- }
-@@ -1421,7 +1440,7 @@ qla2xxx_eh_device_reset(struct scsi_cmnd *cmd)
-               return err;
-       if (fcport->deleted)
--              return SUCCESS;
-+              return FAILED;
-       ql_log(ql_log_info, vha, 0x8009,
-           "DEVICE RESET ISSUED nexus=%ld:%d:%llu cmd=%p.\n", vha->host_no,
-@@ -1489,7 +1508,7 @@ qla2xxx_eh_target_reset(struct scsi_cmnd *cmd)
-               return err;
-       if (fcport->deleted)
--              return SUCCESS;
-+              return FAILED;
-       ql_log(ql_log_info, vha, 0x8009,
-           "TARGET RESET ISSUED nexus=%ld:%d cmd=%p.\n", vha->host_no,
--- 
-2.35.1
-
diff --git a/queue-5.15/scsi-qla2xxx-fix-discovery-issues-in-fc-al-topology.patch-12842 b/queue-5.15/scsi-qla2xxx-fix-discovery-issues-in-fc-al-topology.patch-12842
deleted file mode 100644 (file)
index 66b6f7b..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-From 0b4b66987bf3e1b6dc2f81496653d7ff9b38b5ec Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 12 Jul 2022 22:20:42 -0700
-Subject: scsi: qla2xxx: Fix discovery issues in FC-AL topology
-
-From: Arun Easi <aeasi@marvell.com>
-
-[ Upstream commit 47ccb113cead905bdc236571bf8ac6fed90321b3 ]
-
-A direct attach tape device, when gets swapped with another, was not
-discovered. Fix this by looking at loop map and reinitialize link if there
-are devices present.
-
-Link: https://lore.kernel.org/linux-scsi/baef87c3-5dad-3b47-44c1-6914bfc90108@cybernetics.com/
-Link: https://lore.kernel.org/r/20220713052045.10683-8-njavali@marvell.com
-Cc: stable@vger.kernel.org
-Reported-by: Tony Battersby <tonyb@cybernetics.com>
-Tested-by: Tony Battersby <tonyb@cybernetics.com>
-Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
-Signed-off-by: Arun Easi <aeasi@marvell.com>
-Signed-off-by: Nilesh Javali <njavali@marvell.com>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/scsi/qla2xxx/qla_gbl.h  |  3 ++-
- drivers/scsi/qla2xxx/qla_init.c | 29 +++++++++++++++++++++++++++++
- drivers/scsi/qla2xxx/qla_mbx.c  |  5 ++++-
- 3 files changed, 35 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h
-index db6ccdda740e..f82e4a348330 100644
---- a/drivers/scsi/qla2xxx/qla_gbl.h
-+++ b/drivers/scsi/qla2xxx/qla_gbl.h
-@@ -435,7 +435,8 @@ extern int
- qla2x00_get_resource_cnts(scsi_qla_host_t *);
- extern int
--qla2x00_get_fcal_position_map(scsi_qla_host_t *ha, char *pos_map);
-+qla2x00_get_fcal_position_map(scsi_qla_host_t *ha, char *pos_map,
-+              u8 *num_entries);
- extern int
- qla2x00_get_link_status(scsi_qla_host_t *, uint16_t, struct link_statistics *,
-diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
-index b61a56e1b9a7..b81797a3ab61 100644
---- a/drivers/scsi/qla2xxx/qla_init.c
-+++ b/drivers/scsi/qla2xxx/qla_init.c
-@@ -5521,6 +5521,22 @@ static int qla2x00_configure_n2n_loop(scsi_qla_host_t *vha)
-       return QLA_FUNCTION_FAILED;
- }
-+static void
-+qla_reinitialize_link(scsi_qla_host_t *vha)
-+{
-+      int rval;
-+
-+      atomic_set(&vha->loop_state, LOOP_DOWN);
-+      atomic_set(&vha->loop_down_timer, LOOP_DOWN_TIME);
-+      rval = qla2x00_full_login_lip(vha);
-+      if (rval == QLA_SUCCESS) {
-+              ql_dbg(ql_dbg_disc, vha, 0xd050, "Link reinitialized\n");
-+      } else {
-+              ql_dbg(ql_dbg_disc, vha, 0xd051,
-+                      "Link reinitialization failed (%d)\n", rval);
-+      }
-+}
-+
- /*
-  * qla2x00_configure_local_loop
-  *    Updates Fibre Channel Device Database with local loop devices.
-@@ -5572,6 +5588,19 @@ qla2x00_configure_local_loop(scsi_qla_host_t *vha)
-               spin_unlock_irqrestore(&vha->work_lock, flags);
-               if (vha->scan.scan_retry < MAX_SCAN_RETRIES) {
-+                      u8 loop_map_entries = 0;
-+                      int rc;
-+
-+                      rc = qla2x00_get_fcal_position_map(vha, NULL,
-+                                              &loop_map_entries);
-+                      if (rc == QLA_SUCCESS && loop_map_entries > 1) {
-+                              /*
-+                               * There are devices that are still not logged
-+                               * in. Reinitialize to give them a chance.
-+                               */
-+                              qla_reinitialize_link(vha);
-+                              return QLA_FUNCTION_FAILED;
-+                      }
-                       set_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags);
-                       set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags);
-               }
-diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c
-index 951f90035449..5bcb8da4360f 100644
---- a/drivers/scsi/qla2xxx/qla_mbx.c
-+++ b/drivers/scsi/qla2xxx/qla_mbx.c
-@@ -3062,7 +3062,8 @@ qla2x00_get_resource_cnts(scsi_qla_host_t *vha)
-  *    Kernel context.
-  */
- int
--qla2x00_get_fcal_position_map(scsi_qla_host_t *vha, char *pos_map)
-+qla2x00_get_fcal_position_map(scsi_qla_host_t *vha, char *pos_map,
-+              u8 *num_entries)
- {
-       int rval;
-       mbx_cmd_t mc;
-@@ -3102,6 +3103,8 @@ qla2x00_get_fcal_position_map(scsi_qla_host_t *vha, char *pos_map)
-               if (pos_map)
-                       memcpy(pos_map, pmap, FCAL_MAP_SIZE);
-+              if (num_entries)
-+                      *num_entries = pmap[0];
-       }
-       dma_pool_free(ha->s_dma_pool, pmap, pmap_dma);
--- 
-2.35.1
-
diff --git a/queue-5.15/scsi-qla2xxx-fix-erroneous-mailbox-timeout-after-pci.patch b/queue-5.15/scsi-qla2xxx-fix-erroneous-mailbox-timeout-after-pci.patch
deleted file mode 100644 (file)
index 2f242a7..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-From e6f07ae0f8b10d076fd632535cf706e64a4b06f3 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 15 Jun 2022 22:35:07 -0700
-Subject: scsi: qla2xxx: Fix erroneous mailbox timeout after PCI error
- injection
-
-From: Quinn Tran <qutran@marvell.com>
-
-[ Upstream commit f260694e6463b63ae550aad25ddefe94cb1904da ]
-
-Clear wait for mailbox interrupt flag to prevent stale mailbox:
-
-Feb 22 05:22:56 ltcden4-lp7 kernel: qla2xxx [0135:90:00.1]-500a:4: LOOP UP detected (16 Gbps).
-Feb 22 05:22:59 ltcden4-lp7 kernel: qla2xxx [0135:90:00.1]-d04c:4: MBX Command timeout for cmd 69, ...
-
-To fix the issue, driver needs to clear the MBX_INTR_WAIT flag on purging
-the mailbox. When the stale mailbox completion does arrive, it will be
-dropped.
-
-Link: https://lore.kernel.org/r/20220616053508.27186-11-njavali@marvell.com
-Fixes: b6faaaf796d7 ("scsi: qla2xxx: Serialize mailbox request")
-Cc: Naresh Bannoth <nbannoth@in.ibm.com>
-Cc: Kyle Mahlkuch <Kyle.Mahlkuch@ibm.com>
-Cc: stable@vger.kernel.org
-Reported-by: Naresh Bannoth <nbannoth@in.ibm.com>
-Tested-by: Naresh Bannoth <nbannoth@in.ibm.com>
-Signed-off-by: Quinn Tran <qutran@marvell.com>
-Signed-off-by: Nilesh Javali <njavali@marvell.com>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/scsi/qla2xxx/qla_mbx.c | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c
-index 5f2594d3d4f9..951f90035449 100644
---- a/drivers/scsi/qla2xxx/qla_mbx.c
-+++ b/drivers/scsi/qla2xxx/qla_mbx.c
-@@ -276,6 +276,12 @@ qla2x00_mailbox_command(scsi_qla_host_t *vha, mbx_cmd_t *mcp)
-               atomic_inc(&ha->num_pend_mbx_stage3);
-               if (!wait_for_completion_timeout(&ha->mbx_intr_comp,
-                   mcp->tov * HZ)) {
-+                      ql_dbg(ql_dbg_mbx, vha, 0x117a,
-+                          "cmd=%x Timeout.\n", command);
-+                      spin_lock_irqsave(&ha->hardware_lock, flags);
-+                      clear_bit(MBX_INTR_WAIT, &ha->mbx_cmd_flags);
-+                      spin_unlock_irqrestore(&ha->hardware_lock, flags);
-+
-                       if (chip_reset != ha->chip_reset) {
-                               eeh_delay = ha->flags.eeh_busy ? 1 : 0;
-@@ -288,12 +294,6 @@ qla2x00_mailbox_command(scsi_qla_host_t *vha, mbx_cmd_t *mcp)
-                               rval = QLA_ABORTED;
-                               goto premature_exit;
-                       }
--                      ql_dbg(ql_dbg_mbx, vha, 0x117a,
--                          "cmd=%x Timeout.\n", command);
--                      spin_lock_irqsave(&ha->hardware_lock, flags);
--                      clear_bit(MBX_INTR_WAIT, &ha->mbx_cmd_flags);
--                      spin_unlock_irqrestore(&ha->hardware_lock, flags);
--
-               } else if (ha->flags.purge_mbox ||
-                   chip_reset != ha->chip_reset) {
-                       eeh_delay = ha->flags.eeh_busy ? 1 : 0;
--- 
-2.35.1
-
diff --git a/queue-5.15/scsi-qla2xxx-fix-excessive-i-o-error-messages-by-def.patch b/queue-5.15/scsi-qla2xxx-fix-excessive-i-o-error-messages-by-def.patch
deleted file mode 100644 (file)
index 937701c..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-From e0e9abd03bd5742d62ac45c7517382dc7d2267f8 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 15 Jun 2022 22:34:58 -0700
-Subject: scsi: qla2xxx: Fix excessive I/O error messages by default
-
-From: Arun Easi <aeasi@marvell.com>
-
-[ Upstream commit bff4873c709085e09d0ffae0c25b8e65256e3205 ]
-
-Disable printing I/O error messages by default.  The messages will be
-printed only when logging was enabled.
-
-Link: https://lore.kernel.org/r/20220616053508.27186-2-njavali@marvell.com
-Fixes: 8e2d81c6b5be ("scsi: qla2xxx: Fix excessive messages during device logout")
-Cc: stable@vger.kernel.org
-Signed-off-by: Arun Easi <aeasi@marvell.com>
-Signed-off-by: Nilesh Javali <njavali@marvell.com>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/scsi/qla2xxx/qla_isr.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
-index c41a965eb4a7..6c71e0fd4942 100644
---- a/drivers/scsi/qla2xxx/qla_isr.c
-+++ b/drivers/scsi/qla2xxx/qla_isr.c
-@@ -2633,7 +2633,7 @@ static void qla24xx_nvme_iocb_entry(scsi_qla_host_t *vha, struct req_que *req,
-       }
-       if (unlikely(logit))
--              ql_log(ql_dbg_io, fcport->vha, 0x5060,
-+              ql_dbg(ql_dbg_io, fcport->vha, 0x5060,
-                  "NVME-%s ERR Handling - hdl=%x status(%x) tr_len:%x resid=%x  ox_id=%x\n",
-                  sp->name, sp->handle, comp_status,
-                  fd->transferred_length, le32_to_cpu(sts->residual_len),
-@@ -3491,7 +3491,7 @@ qla2x00_status_entry(scsi_qla_host_t *vha, struct rsp_que *rsp, void *pkt)
- out:
-       if (logit)
--              ql_log(ql_dbg_io, fcport->vha, 0x3022,
-+              ql_dbg(ql_dbg_io, fcport->vha, 0x3022,
-                      "FCP command status: 0x%x-0x%x (0x%x) nexus=%ld:%d:%llu portid=%02x%02x%02x oxid=0x%x cdb=%10phN len=0x%x rsp_info=0x%x resid=0x%x fw_resid=0x%x sp=%p cp=%p.\n",
-                      comp_status, scsi_status, res, vha->host_no,
-                      cp->device->id, cp->device->lun, fcport->d_id.b.domain,
--- 
-2.35.1
-
diff --git a/queue-5.15/scsi-qla2xxx-fix-imbalance-vha-vref_count.patch-21291 b/queue-5.15/scsi-qla2xxx-fix-imbalance-vha-vref_count.patch-21291
deleted file mode 100644 (file)
index 46cf1e9..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-From 2d6af9bb8469e163a0afa2552f0e5edb03b41a1b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 12 Jul 2022 22:20:41 -0700
-Subject: scsi: qla2xxx: Fix imbalance vha->vref_count
-
-From: Quinn Tran <qutran@marvell.com>
-
-[ Upstream commit 63fa7f2644b4b48e1913af33092c044bf48e9321 ]
-
-vref_count took an extra decrement in the task management path.  Add an
-extra ref count to compensate the imbalance.
-
-Link: https://lore.kernel.org/r/20220713052045.10683-7-njavali@marvell.com
-Cc: stable@vger.kernel.org
-Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
-Signed-off-by: Quinn Tran <qutran@marvell.com>
-Signed-off-by: Nilesh Javali <njavali@marvell.com>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/scsi/qla2xxx/qla_init.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
-index ab08ab206abc..b61a56e1b9a7 100644
---- a/drivers/scsi/qla2xxx/qla_init.c
-+++ b/drivers/scsi/qla2xxx/qla_init.c
-@@ -168,6 +168,7 @@ int qla24xx_async_abort_cmd(srb_t *cmd_sp, bool wait)
-       struct srb_iocb *abt_iocb;
-       srb_t *sp;
-       int rval = QLA_FUNCTION_FAILED;
-+      uint8_t bail;
-       /* ref: INIT for ABTS command */
-       sp = qla2xxx_get_qpair_sp(cmd_sp->vha, cmd_sp->qpair, cmd_sp->fcport,
-@@ -175,6 +176,7 @@ int qla24xx_async_abort_cmd(srb_t *cmd_sp, bool wait)
-       if (!sp)
-               return QLA_MEMORY_ALLOC_FAILED;
-+      QLA_VHA_MARK_BUSY(vha, bail);
-       abt_iocb = &sp->u.iocb_cmd;
-       sp->type = SRB_ABT_CMD;
-       sp->name = "abort";
-@@ -2020,12 +2022,14 @@ qla2x00_async_tm_cmd(fc_port_t *fcport, uint32_t flags, uint32_t lun,
-       struct srb_iocb *tm_iocb;
-       srb_t *sp;
-       int rval = QLA_FUNCTION_FAILED;
-+      uint8_t bail;
-       /* ref: INIT */
-       sp = qla2x00_get_sp(vha, fcport, GFP_KERNEL);
-       if (!sp)
-               goto done;
-+      QLA_VHA_MARK_BUSY(vha, bail);
-       sp->type = SRB_TM_CMD;
-       sp->name = "tmf";
-       qla2x00_init_async_sp(sp, qla2x00_get_async_timeout(vha),
--- 
-2.35.1
-
diff --git a/queue-5.15/scsi-qla2xxx-fix-losing-fcp-2-targets-during-port-pe.patch b/queue-5.15/scsi-qla2xxx-fix-losing-fcp-2-targets-during-port-pe.patch
deleted file mode 100644 (file)
index 10524c3..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-From 1a1e0916c6e933835567aa7c8daaca4a0b066e06 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 15 Jun 2022 22:35:03 -0700
-Subject: scsi: qla2xxx: Fix losing FCP-2 targets during port perturbation
- tests
-
-From: Arun Easi <aeasi@marvell.com>
-
-[ Upstream commit 58d1c124cd79ea686b512043c5bd515590b2ed95 ]
-
-When a mix of FCP-2 (tape) and non-FCP-2 targets are present, FCP-2 target
-state was incorrectly transitioned when both of the targets were gone. Fix
-this by ignoring state transition for FCP-2 targets.
-
-Link: https://lore.kernel.org/r/20220616053508.27186-7-njavali@marvell.com
-Fixes: 44c57f205876 ("scsi: qla2xxx: Changes to support FCP2 Target")
-Cc: stable@vger.kernel.org
-Signed-off-by: Arun Easi <aeasi@marvell.com>
-Signed-off-by: Nilesh Javali <njavali@marvell.com>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/scsi/qla2xxx/qla_gs.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/scsi/qla2xxx/qla_gs.c b/drivers/scsi/qla2xxx/qla_gs.c
-index 2c49f12078ac..d3742a83d2fd 100644
---- a/drivers/scsi/qla2xxx/qla_gs.c
-+++ b/drivers/scsi/qla2xxx/qla_gs.c
-@@ -3628,7 +3628,7 @@ void qla24xx_async_gnnft_done(scsi_qla_host_t *vha, srb_t *sp)
-                               do_delete) {
-                               if (fcport->loop_id != FC_NO_LOOP_ID) {
-                                       if (fcport->flags & FCF_FCP2_DEVICE)
--                                              fcport->logout_on_delete = 0;
-+                                              continue;
-                                       ql_log(ql_log_warn, vha, 0x20f0,
-                                              "%s %d %8phC post del sess\n",
--- 
-2.35.1
-
diff --git a/queue-5.15/scsi-qla2xxx-fix-losing-fcp-2-targets-on-long-port-d.patch b/queue-5.15/scsi-qla2xxx-fix-losing-fcp-2-targets-on-long-port-d.patch
deleted file mode 100644 (file)
index 4a6c1e8..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-From 2eba983f6446ec2ca5460d266c2e0b6b8fd70b2d Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 15 Jun 2022 22:35:06 -0700
-Subject: scsi: qla2xxx: Fix losing FCP-2 targets on long port disable with
- I/Os
-
-From: Arun Easi <aeasi@marvell.com>
-
-[ Upstream commit 2416ccd3815ba1613e10a6da0a24ef21acfe5633 ]
-
-FCP-2 devices were not coming back online once they were lost, login
-retries exhausted, and then came back up.  Fix this by accepting RSCN when
-the device is not online.
-
-Link: https://lore.kernel.org/r/20220616053508.27186-10-njavali@marvell.com
-Fixes: 44c57f205876 ("scsi: qla2xxx: Changes to support FCP2 Target")
-Cc: stable@vger.kernel.org
-Signed-off-by: Arun Easi <aeasi@marvell.com>
-Signed-off-by: Nilesh Javali <njavali@marvell.com>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/scsi/qla2xxx/qla_init.c | 12 ++++++++----
- 1 file changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
-index 2f1fba2a014a..ab08ab206abc 100644
---- a/drivers/scsi/qla2xxx/qla_init.c
-+++ b/drivers/scsi/qla2xxx/qla_init.c
-@@ -1834,7 +1834,8 @@ void qla2x00_handle_rscn(scsi_qla_host_t *vha, struct event_arg *ea)
-       case RSCN_PORT_ADDR:
-               fcport = qla2x00_find_fcport_by_nportid(vha, &ea->id, 1);
-               if (fcport) {
--                      if (fcport->flags & FCF_FCP2_DEVICE) {
-+                      if (fcport->flags & FCF_FCP2_DEVICE &&
-+                          atomic_read(&fcport->state) == FCS_ONLINE) {
-                               ql_dbg(ql_dbg_disc, vha, 0x2115,
-                                      "Delaying session delete for FCP2 portid=%06x %8phC ",
-                                       fcport->d_id.b24, fcport->port_name);
-@@ -1866,7 +1867,8 @@ void qla2x00_handle_rscn(scsi_qla_host_t *vha, struct event_arg *ea)
-               break;
-       case RSCN_AREA_ADDR:
-               list_for_each_entry(fcport, &vha->vp_fcports, list) {
--                      if (fcport->flags & FCF_FCP2_DEVICE)
-+                      if (fcport->flags & FCF_FCP2_DEVICE &&
-+                          atomic_read(&fcport->state) == FCS_ONLINE)
-                               continue;
-                       if ((ea->id.b24 & 0xffff00) == (fcport->d_id.b24 & 0xffff00)) {
-@@ -1877,7 +1879,8 @@ void qla2x00_handle_rscn(scsi_qla_host_t *vha, struct event_arg *ea)
-               break;
-       case RSCN_DOM_ADDR:
-               list_for_each_entry(fcport, &vha->vp_fcports, list) {
--                      if (fcport->flags & FCF_FCP2_DEVICE)
-+                      if (fcport->flags & FCF_FCP2_DEVICE &&
-+                          atomic_read(&fcport->state) == FCS_ONLINE)
-                               continue;
-                       if ((ea->id.b24 & 0xff0000) == (fcport->d_id.b24 & 0xff0000)) {
-@@ -1889,7 +1892,8 @@ void qla2x00_handle_rscn(scsi_qla_host_t *vha, struct event_arg *ea)
-       case RSCN_FAB_ADDR:
-       default:
-               list_for_each_entry(fcport, &vha->vp_fcports, list) {
--                      if (fcport->flags & FCF_FCP2_DEVICE)
-+                      if (fcport->flags & FCF_FCP2_DEVICE &&
-+                          atomic_read(&fcport->state) == FCS_ONLINE)
-                               continue;
-                       fcport->scan_needed = 1;
--- 
-2.35.1
-
diff --git a/queue-5.15/scsi-qla2xxx-fix-losing-target-when-it-reappears-dur.patch b/queue-5.15/scsi-qla2xxx-fix-losing-target-when-it-reappears-dur.patch
deleted file mode 100644 (file)
index d5982a9..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-From f716ebbcca6fd9461d2fea1b920aa18c48915ca1 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 15 Jun 2022 22:35:04 -0700
-Subject: scsi: qla2xxx: Fix losing target when it reappears during delete
-
-From: Arun Easi <aeasi@marvell.com>
-
-[ Upstream commit 118b0c863c8f5629cc5271fc24d72d926e0715d9 ]
-
-FC target disappeared during port perturbation tests due to a race that
-tramples target state.  Fix the issue by adding state checks before
-proceeding.
-
-Link: https://lore.kernel.org/r/20220616053508.27186-8-njavali@marvell.com
-Fixes: 44c57f205876 ("scsi: qla2xxx: Changes to support FCP2 Target")
-Cc: stable@vger.kernel.org
-Signed-off-by: Arun Easi <aeasi@marvell.com>
-Signed-off-by: Nilesh Javali <njavali@marvell.com>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/scsi/qla2xxx/qla_attr.c | 24 +++++++++++++++++-------
- 1 file changed, 17 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c
-index bd4ebc1b5c1e..a302ed8b610f 100644
---- a/drivers/scsi/qla2xxx/qla_attr.c
-+++ b/drivers/scsi/qla2xxx/qla_attr.c
-@@ -2705,17 +2705,24 @@ qla2x00_dev_loss_tmo_callbk(struct fc_rport *rport)
-       if (!fcport)
-               return;
--      /* Now that the rport has been deleted, set the fcport state to
--         FCS_DEVICE_DEAD */
--      qla2x00_set_fcport_state(fcport, FCS_DEVICE_DEAD);
-+
-+      /*
-+       * Now that the rport has been deleted, set the fcport state to
-+       * FCS_DEVICE_DEAD, if the fcport is still lost.
-+       */
-+      if (fcport->scan_state != QLA_FCPORT_FOUND)
-+              qla2x00_set_fcport_state(fcport, FCS_DEVICE_DEAD);
-       /*
-        * Transport has effectively 'deleted' the rport, clear
-        * all local references.
-        */
-       spin_lock_irqsave(host->host_lock, flags);
--      fcport->rport = fcport->drport = NULL;
--      *((fc_port_t **)rport->dd_data) = NULL;
-+      /* Confirm port has not reappeared before clearing pointers. */
-+      if (rport->port_state != FC_PORTSTATE_ONLINE) {
-+              fcport->rport = fcport->drport = NULL;
-+              *((fc_port_t **)rport->dd_data) = NULL;
-+      }
-       spin_unlock_irqrestore(host->host_lock, flags);
-       if (test_bit(ABORT_ISP_ACTIVE, &fcport->vha->dpc_flags))
-@@ -2748,9 +2755,12 @@ qla2x00_terminate_rport_io(struct fc_rport *rport)
-       /*
-        * At this point all fcport's software-states are cleared.  Perform any
-        * final cleanup of firmware resources (PCBs and XCBs).
-+       *
-+       * Attempt to cleanup only lost devices.
-        */
-       if (fcport->loop_id != FC_NO_LOOP_ID) {
--              if (IS_FWI2_CAPABLE(fcport->vha->hw)) {
-+              if (IS_FWI2_CAPABLE(fcport->vha->hw) &&
-+                  fcport->scan_state != QLA_FCPORT_FOUND) {
-                       if (fcport->loop_id != FC_NO_LOOP_ID)
-                               fcport->logout_on_delete = 1;
-@@ -2760,7 +2770,7 @@ qla2x00_terminate_rport_io(struct fc_rport *rport)
-                                      __LINE__);
-                               qlt_schedule_sess_for_deletion(fcport);
-                       }
--              } else {
-+              } else if (!IS_FWI2_CAPABLE(fcport->vha->hw)) {
-                       qla2x00_port_logout(fcport->vha, fcport);
-               }
-       }
--- 
-2.35.1
-
diff --git a/queue-5.15/scsi-qla2xxx-fix-response-queue-handler-reading-stal.patch b/queue-5.15/scsi-qla2xxx-fix-response-queue-handler-reading-stal.patch
deleted file mode 100644 (file)
index d9a5eb3..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-From b85888be1f0e34cb530cdf984eedaf5f9ca2f63f Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 12 Jul 2022 22:20:39 -0700
-Subject: scsi: qla2xxx: Fix response queue handler reading stale packets
-
-From: Arun Easi <aeasi@marvell.com>
-
-[ Upstream commit b1f707146923335849fb70237eec27d4d1ae7d62 ]
-
-On some platforms, the current logic of relying on finding new packet
-solely based on signature pattern can lead to driver reading stale
-packets. Though this is a bug in those platforms, reduce such exposures by
-limiting reading packets until the IN pointer.
-
-Two module parameters are introduced:
-
-  ql2xrspq_follow_inptr:
-
-    When set, on newer adapters that has queue pointer shadowing, look for
-    response packets only until response queue in pointer.
-
-    When reset, response packets are read based on a signature pattern
-    logic (old way).
-
-  ql2xrspq_follow_inptr_legacy:
-
-    Like ql2xrspq_follow_inptr, but for those adapters where there is no
-    queue pointer shadowing.
-
-Link: https://lore.kernel.org/r/20220713052045.10683-5-njavali@marvell.com
-Cc: stable@vger.kernel.org
-Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
-Signed-off-by: Arun Easi <aeasi@marvell.com>
-Signed-off-by: Nilesh Javali <njavali@marvell.com>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/scsi/qla2xxx/qla_gbl.h |  2 ++
- drivers/scsi/qla2xxx/qla_isr.c | 24 +++++++++++++++++++++++-
- drivers/scsi/qla2xxx/qla_os.c  | 10 ++++++++++
- 3 files changed, 35 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h
-index 2f6afdbd2dfa..db6ccdda740e 100644
---- a/drivers/scsi/qla2xxx/qla_gbl.h
-+++ b/drivers/scsi/qla2xxx/qla_gbl.h
-@@ -192,6 +192,8 @@ extern int ql2xfulldump_on_mpifail;
- extern int ql2xsecenable;
- extern int ql2xenforce_iocb_limit;
- extern int ql2xabts_wait_nvme;
-+extern int ql2xrspq_follow_inptr;
-+extern int ql2xrspq_follow_inptr_legacy;
- extern int qla2x00_loop_reset(scsi_qla_host_t *);
- extern void qla2x00_abort_all_cmds(scsi_qla_host_t *, int);
-diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
-index b218f9739619..ecbc0a5ffb3f 100644
---- a/drivers/scsi/qla2xxx/qla_isr.c
-+++ b/drivers/scsi/qla2xxx/qla_isr.c
-@@ -3767,6 +3767,8 @@ void qla24xx_process_response_queue(struct scsi_qla_host *vha,
-       struct qla_hw_data *ha = vha->hw;
-       struct purex_entry_24xx *purex_entry;
-       struct purex_item *pure_item;
-+      u16 rsp_in = 0;
-+      int follow_inptr, is_shadow_hba;
-       if (!ha->flags.fw_started)
-               return;
-@@ -3776,7 +3778,25 @@ void qla24xx_process_response_queue(struct scsi_qla_host *vha,
-               qla_cpu_update(rsp->qpair, smp_processor_id());
-       }
--      while (rsp->ring_ptr->signature != RESPONSE_PROCESSED) {
-+#define __update_rsp_in(_update, _is_shadow_hba, _rsp, _rsp_in)               \
-+      do {                                                            \
-+              if (_update) {                                          \
-+                      _rsp_in = _is_shadow_hba ? *(_rsp)->in_ptr :    \
-+                              rd_reg_dword_relaxed((_rsp)->rsp_q_in); \
-+              }                                                       \
-+      } while (0)
-+
-+      is_shadow_hba = IS_SHADOW_REG_CAPABLE(ha);
-+      follow_inptr = is_shadow_hba ? ql2xrspq_follow_inptr :
-+                              ql2xrspq_follow_inptr_legacy;
-+
-+      __update_rsp_in(follow_inptr, is_shadow_hba, rsp, rsp_in);
-+
-+      while ((likely(follow_inptr &&
-+                     rsp->ring_index != rsp_in &&
-+                     rsp->ring_ptr->signature != RESPONSE_PROCESSED)) ||
-+                     (!follow_inptr &&
-+                      rsp->ring_ptr->signature != RESPONSE_PROCESSED)) {
-               pkt = (struct sts_entry_24xx *)rsp->ring_ptr;
-               rsp->ring_index++;
-@@ -3889,6 +3909,8 @@ void qla24xx_process_response_queue(struct scsi_qla_host *vha,
-                               }
-                               pure_item = qla27xx_copy_fpin_pkt(vha,
-                                                         (void **)&pkt, &rsp);
-+                              __update_rsp_in(follow_inptr, is_shadow_hba,
-+                                              rsp, rsp_in);
-                               if (!pure_item)
-                                       break;
-                               qla24xx_queue_purex_item(vha, pure_item,
-diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
-index 6542a258cb75..00e97f0a07eb 100644
---- a/drivers/scsi/qla2xxx/qla_os.c
-+++ b/drivers/scsi/qla2xxx/qla_os.c
-@@ -338,6 +338,16 @@ module_param(ql2xdelay_before_pci_error_handling, uint, 0644);
- MODULE_PARM_DESC(ql2xdelay_before_pci_error_handling,
-       "Number of seconds delayed before qla begin PCI error self-handling (default: 5).\n");
-+int ql2xrspq_follow_inptr = 1;
-+module_param(ql2xrspq_follow_inptr, int, 0644);
-+MODULE_PARM_DESC(ql2xrspq_follow_inptr,
-+               "Follow RSP IN pointer for RSP updates for HBAs 27xx and newer (default: 1).");
-+
-+int ql2xrspq_follow_inptr_legacy = 1;
-+module_param(ql2xrspq_follow_inptr_legacy, int, 0644);
-+MODULE_PARM_DESC(ql2xrspq_follow_inptr_legacy,
-+               "Follow RSP IN pointer for RSP updates for HBAs older than 27XX. (default: 1).");
-+
- static void qla2x00_clear_drv_active(struct qla_hw_data *);
- static void qla2x00_free_device(scsi_qla_host_t *);
- static int qla2xxx_map_queues(struct Scsi_Host *shost);
--- 
-2.35.1
-
diff --git a/queue-5.15/scsi-qla2xxx-turn-off-multi-queue-for-8g-adapters.patch-24759 b/queue-5.15/scsi-qla2xxx-turn-off-multi-queue-for-8g-adapters.patch-24759
deleted file mode 100644 (file)
index d794a39..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-From a5fefe072ff838eb38ad9905a6c9eeeb513a6f02 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 15 Jun 2022 22:35:01 -0700
-Subject: scsi: qla2xxx: Turn off multi-queue for 8G adapters
-
-From: Quinn Tran <qutran@marvell.com>
-
-[ Upstream commit 5304673bdb1635e27555bd636fd5d6956f1cd552 ]
-
-For 8G adapters, multi-queue was enabled accidentally. Make sure
-multi-queue is not enabled.
-
-Link: https://lore.kernel.org/r/20220616053508.27186-5-njavali@marvell.com
-Cc: stable@vger.kernel.org
-Signed-off-by: Quinn Tran <qutran@marvell.com>
-Signed-off-by: Nilesh Javali <njavali@marvell.com>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/scsi/qla2xxx/qla_def.h |  4 ++--
- drivers/scsi/qla2xxx/qla_isr.c | 16 ++++++----------
- 2 files changed, 8 insertions(+), 12 deletions(-)
-
-diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h
-index 5e74c451bf4e..51c7ce5f9792 100644
---- a/drivers/scsi/qla2xxx/qla_def.h
-+++ b/drivers/scsi/qla2xxx/qla_def.h
-@@ -4265,8 +4265,8 @@ struct qla_hw_data {
- #define IS_OEM_001(ha)          ((ha)->device_type & DT_OEM_001)
- #define HAS_EXTENDED_IDS(ha)    ((ha)->device_type & DT_EXTENDED_IDS)
- #define IS_CT6_SUPPORTED(ha)  ((ha)->device_type & DT_CT6_SUPPORTED)
--#define IS_MQUE_CAPABLE(ha)   ((ha)->mqenable || IS_QLA83XX(ha) || \
--                              IS_QLA27XX(ha) || IS_QLA28XX(ha))
-+#define IS_MQUE_CAPABLE(ha)   (IS_QLA83XX(ha) || IS_QLA27XX(ha) || \
-+                               IS_QLA28XX(ha))
- #define IS_BIDI_CAPABLE(ha) \
-     (IS_QLA25XX(ha) || IS_QLA2031(ha) || IS_QLA27XX(ha) || IS_QLA28XX(ha))
- /* Bit 21 of fw_attributes decides the MCTP capabilities */
-diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
-index 6c71e0fd4942..b218f9739619 100644
---- a/drivers/scsi/qla2xxx/qla_isr.c
-+++ b/drivers/scsi/qla2xxx/qla_isr.c
-@@ -4415,16 +4415,12 @@ qla24xx_enable_msix(struct qla_hw_data *ha, struct rsp_que *rsp)
-       }
-       /* Enable MSI-X vector for response queue update for queue 0 */
--      if (IS_QLA83XX(ha) || IS_QLA27XX(ha) || IS_QLA28XX(ha)) {
--              if (ha->msixbase && ha->mqiobase &&
--                  (ha->max_rsp_queues > 1 || ha->max_req_queues > 1 ||
--                   ql2xmqsupport))
--                      ha->mqenable = 1;
--      } else
--              if (ha->mqiobase &&
--                  (ha->max_rsp_queues > 1 || ha->max_req_queues > 1 ||
--                   ql2xmqsupport))
--                      ha->mqenable = 1;
-+      if (IS_MQUE_CAPABLE(ha) &&
-+          (ha->msixbase && ha->mqiobase && ha->max_qpairs))
-+              ha->mqenable = 1;
-+      else
-+              ha->mqenable = 0;
-+
-       ql_dbg(ql_dbg_multiq, vha, 0xc005,
-           "mqiobase=%p, max_rsp_queues=%d, max_req_queues=%d.\n",
-           ha->mqiobase, ha->max_rsp_queues, ha->max_req_queues);
--- 
-2.35.1
-
diff --git a/queue-5.15/scsi-qla2xxx-update-manufacturer-details.patch b/queue-5.15/scsi-qla2xxx-update-manufacturer-details.patch
deleted file mode 100644 (file)
index 9984ebd..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-From 318142b652409d6495f685168c5d8ef1539dbd9e Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 12 Jul 2022 22:20:44 -0700
-Subject: scsi: qla2xxx: Update manufacturer details
-
-From: Bikash Hazarika <bhazarika@marvell.com>
-
-[ Upstream commit 1ccad27716ecad1fd58c35e579bedb81fa5e1ad5 ]
-
-Update manufacturer details to indicate Marvell Semiconductors.
-
-Link: https://lore.kernel.org/r/20220713052045.10683-10-njavali@marvell.com
-Cc: stable@vger.kernel.org
-Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
-Signed-off-by: Bikash Hazarika <bhazarika@marvell.com>
-Signed-off-by: Nilesh Javali <njavali@marvell.com>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/scsi/qla2xxx/qla_def.h | 2 +-
- drivers/scsi/qla2xxx/qla_gs.c  | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h
-index 51c7ce5f9792..c906b45ff76a 100644
---- a/drivers/scsi/qla2xxx/qla_def.h
-+++ b/drivers/scsi/qla2xxx/qla_def.h
-@@ -78,7 +78,7 @@ typedef union {
- #include "qla_nvme.h"
- #define QLA2XXX_DRIVER_NAME   "qla2xxx"
- #define QLA2XXX_APIDEV                "ql2xapidev"
--#define QLA2XXX_MANUFACTURER  "QLogic Corporation"
-+#define QLA2XXX_MANUFACTURER  "Marvell Semiconductor, Inc."
- /*
-  * We have MAILBOX_REGISTER_COUNT sized arrays in a few places,
-diff --git a/drivers/scsi/qla2xxx/qla_gs.c b/drivers/scsi/qla2xxx/qla_gs.c
-index d3742a83d2fd..b0f3bf42c340 100644
---- a/drivers/scsi/qla2xxx/qla_gs.c
-+++ b/drivers/scsi/qla2xxx/qla_gs.c
-@@ -1615,7 +1615,7 @@ qla2x00_hba_attributes(scsi_qla_host_t *vha, void *entries,
-       eiter->type = cpu_to_be16(FDMI_HBA_MANUFACTURER);
-       alen = scnprintf(
-               eiter->a.manufacturer, sizeof(eiter->a.manufacturer),
--              "%s", "QLogic Corporation");
-+              "%s", QLA2XXX_MANUFACTURER);
-       alen += FDMI_ATTR_ALIGNMENT(alen);
-       alen += FDMI_ATTR_TYPELEN(eiter);
-       eiter->len = cpu_to_be16(alen);
--- 
-2.35.1
-
diff --git a/queue-5.15/scsi-qla2xxx-wind-down-adapter-after-pcie-error.patch-6065 b/queue-5.15/scsi-qla2xxx-wind-down-adapter-after-pcie-error.patch-6065
deleted file mode 100644 (file)
index 20124b5..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
-From f2fbb80e0df228b61cec2944fe21ed09e396ecdf Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 15 Jun 2022 22:35:00 -0700
-Subject: scsi: qla2xxx: Wind down adapter after PCIe error
-
-From: Quinn Tran <qutran@marvell.com>
-
-[ Upstream commit d3117c83ba316b3200d9f2fe900f2b9a5525a25c ]
-
-Put adapter into a wind down state if OS does not make any attempt to
-recover the adapter after PCIe error.
-
-Link: https://lore.kernel.org/r/20220616053508.27186-4-njavali@marvell.com
-Cc: stable@vger.kernel.org
-Signed-off-by: Quinn Tran <qutran@marvell.com>
-Signed-off-by: Nilesh Javali <njavali@marvell.com>
-Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/scsi/qla2xxx/qla_bsg.c  | 10 ++++++-
- drivers/scsi/qla2xxx/qla_def.h  |  4 +++
- drivers/scsi/qla2xxx/qla_init.c | 20 ++++++++++++++
- drivers/scsi/qla2xxx/qla_os.c   | 48 +++++++++++++++++++++++++++++++++
- 4 files changed, 81 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/scsi/qla2xxx/qla_bsg.c b/drivers/scsi/qla2xxx/qla_bsg.c
-index c636165be52b..3650f16cab6c 100644
---- a/drivers/scsi/qla2xxx/qla_bsg.c
-+++ b/drivers/scsi/qla2xxx/qla_bsg.c
-@@ -2972,6 +2972,13 @@ qla24xx_bsg_timeout(struct bsg_job *bsg_job)
-       ql_log(ql_log_info, vha, 0x708b, "%s CMD timeout. bsg ptr %p.\n",
-           __func__, bsg_job);
-+
-+      if (qla2x00_isp_reg_stat(ha)) {
-+              ql_log(ql_log_info, vha, 0x9007,
-+                  "PCI/Register disconnect.\n");
-+              qla_pci_set_eeh_busy(vha);
-+      }
-+
-       /* find the bsg job from the active list of commands */
-       spin_lock_irqsave(&ha->hardware_lock, flags);
-       for (que = 0; que < ha->max_req_queues; que++) {
-@@ -2989,7 +2996,8 @@ qla24xx_bsg_timeout(struct bsg_job *bsg_job)
-                           sp->u.bsg_job == bsg_job) {
-                               req->outstanding_cmds[cnt] = NULL;
-                               spin_unlock_irqrestore(&ha->hardware_lock, flags);
--                              if (ha->isp_ops->abort_command(sp)) {
-+
-+                              if (!ha->flags.eeh_busy && ha->isp_ops->abort_command(sp)) {
-                                       ql_log(ql_log_warn, vha, 0x7089,
-                                           "mbx abort_command failed.\n");
-                                       bsg_reply->result = -EIO;
-diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h
-index 4fc289815ccb..5e74c451bf4e 100644
---- a/drivers/scsi/qla2xxx/qla_def.h
-+++ b/drivers/scsi/qla2xxx/qla_def.h
-@@ -4045,6 +4045,9 @@ struct qla_hw_data {
-               uint32_t        n2n_fw_acc_sec:1;
-               uint32_t        plogi_template_valid:1;
-               uint32_t        port_isolated:1;
-+              uint32_t        eeh_flush:2;
-+#define EEH_FLUSH_RDY  1
-+#define EEH_FLUSH_DONE 2
-       } flags;
-       uint16_t max_exchg;
-@@ -4079,6 +4082,7 @@ struct qla_hw_data {
-       uint32_t                rsp_que_len;
-       uint32_t                req_que_off;
-       uint32_t                rsp_que_off;
-+      unsigned long           eeh_jif;
-       /* Multi queue data structs */
-       device_reg_t *mqiobase;
-diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
-index edc29d6ebb28..2f1fba2a014a 100644
---- a/drivers/scsi/qla2xxx/qla_init.c
-+++ b/drivers/scsi/qla2xxx/qla_init.c
-@@ -47,6 +47,7 @@ qla2x00_sp_timeout(struct timer_list *t)
- {
-       srb_t *sp = from_timer(sp, t, u.iocb_cmd.timer);
-       struct srb_iocb *iocb;
-+      scsi_qla_host_t *vha = sp->vha;
-       WARN_ON(irqs_disabled());
-       iocb = &sp->u.iocb_cmd;
-@@ -54,6 +55,12 @@ qla2x00_sp_timeout(struct timer_list *t)
-       /* ref: TMR */
-       kref_put(&sp->cmd_kref, qla2x00_sp_release);
-+
-+      if (vha && qla2x00_isp_reg_stat(vha->hw)) {
-+              ql_log(ql_log_info, vha, 0x9008,
-+                  "PCI/Register disconnect.\n");
-+              qla_pci_set_eeh_busy(vha);
-+      }
- }
- void qla2x00_sp_free(srb_t *sp)
-@@ -9698,6 +9705,12 @@ int qla2xxx_disable_port(struct Scsi_Host *host)
-       vha->hw->flags.port_isolated = 1;
-+      if (qla2x00_isp_reg_stat(vha->hw)) {
-+              ql_log(ql_log_info, vha, 0x9006,
-+                  "PCI/Register disconnect, exiting.\n");
-+              qla_pci_set_eeh_busy(vha);
-+              return FAILED;
-+      }
-       if (qla2x00_chip_is_down(vha))
-               return 0;
-@@ -9713,6 +9726,13 @@ int qla2xxx_enable_port(struct Scsi_Host *host)
- {
-       scsi_qla_host_t *vha = shost_priv(host);
-+      if (qla2x00_isp_reg_stat(vha->hw)) {
-+              ql_log(ql_log_info, vha, 0x9001,
-+                  "PCI/Register disconnect, exiting.\n");
-+              qla_pci_set_eeh_busy(vha);
-+              return FAILED;
-+      }
-+
-       vha->hw->flags.port_isolated = 0;
-       /* Set the flag to 1, so that isp_abort can proceed */
-       vha->flags.online = 1;
-diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
-index e87ad7e0dc94..eca622f3e8c1 100644
---- a/drivers/scsi/qla2xxx/qla_os.c
-+++ b/drivers/scsi/qla2xxx/qla_os.c
-@@ -333,6 +333,11 @@ MODULE_PARM_DESC(ql2xabts_wait_nvme,
-                "To wait for ABTS response on I/O timeouts for NVMe. (default: 1)");
-+u32 ql2xdelay_before_pci_error_handling = 5;
-+module_param(ql2xdelay_before_pci_error_handling, uint, 0644);
-+MODULE_PARM_DESC(ql2xdelay_before_pci_error_handling,
-+      "Number of seconds delayed before qla begin PCI error self-handling (default: 5).\n");
-+
- static void qla2x00_clear_drv_active(struct qla_hw_data *);
- static void qla2x00_free_device(scsi_qla_host_t *);
- static int qla2xxx_map_queues(struct Scsi_Host *shost);
-@@ -7232,6 +7237,44 @@ static void qla_heart_beat(struct scsi_qla_host *vha, u16 dpc_started)
-       }
- }
-+static void qla_wind_down_chip(scsi_qla_host_t *vha)
-+{
-+      struct qla_hw_data *ha = vha->hw;
-+
-+      if (!ha->flags.eeh_busy)
-+              return;
-+      if (ha->pci_error_state)
-+              /* system is trying to recover */
-+              return;
-+
-+      /*
-+       * Current system is not handling PCIE error.  At this point, this is
-+       * best effort to wind down the adapter.
-+       */
-+      if (time_after_eq(jiffies, ha->eeh_jif + ql2xdelay_before_pci_error_handling * HZ) &&
-+          !ha->flags.eeh_flush) {
-+              ql_log(ql_log_info, vha, 0x9009,
-+                  "PCI Error detected, attempting to reset hardware.\n");
-+
-+              ha->isp_ops->reset_chip(vha);
-+              ha->isp_ops->disable_intrs(ha);
-+
-+              ha->flags.eeh_flush = EEH_FLUSH_RDY;
-+              ha->eeh_jif = jiffies;
-+
-+      } else if (ha->flags.eeh_flush == EEH_FLUSH_RDY &&
-+          time_after_eq(jiffies, ha->eeh_jif +  5 * HZ)) {
-+              pci_clear_master(ha->pdev);
-+
-+              /* flush all command */
-+              qla2x00_abort_isp_cleanup(vha);
-+              ha->flags.eeh_flush = EEH_FLUSH_DONE;
-+
-+              ql_log(ql_log_info, vha, 0x900a,
-+                  "PCI Error handling complete, all IOs aborted.\n");
-+      }
-+}
-+
- /**************************************************************************
- *   qla2x00_timer
- *
-@@ -7255,6 +7298,8 @@ qla2x00_timer(struct timer_list *t)
-       fc_port_t *fcport = NULL;
-       if (ha->flags.eeh_busy) {
-+              qla_wind_down_chip(vha);
-+
-               ql_dbg(ql_dbg_timer, vha, 0x6000,
-                   "EEH = %d, restarting timer.\n",
-                   ha->flags.eeh_busy);
-@@ -7835,6 +7880,9 @@ void qla_pci_set_eeh_busy(struct scsi_qla_host *vha)
-       spin_lock_irqsave(&base_vha->work_lock, flags);
-       if (!ha->flags.eeh_busy) {
-+              ha->eeh_jif = jiffies;
-+              ha->flags.eeh_flush = 0;
-+
-               ha->flags.eeh_busy = 1;
-               do_cleanup = true;
-       }
--- 
-2.35.1
-
index e61cbfff3fc3858aca3141606b90ea9c97a96b9a..31dfbfe9ee254d6166fbbe49960d734060b0a70b 100644 (file)
@@ -694,21 +694,12 @@ drm-mediatek-allow-commands-to-be-sent-during-video-.patch
 drm-mediatek-keep-dsi-as-lp00-before-dcs-cmds-transf.patch
 crypto-blake2s-remove-shash-module.patch
 drm-dp-mst-read-the-extended-dpcd-capabilities-durin.patch
-scsi-qla2xxx-fix-excessive-i-o-error-messages-by-def.patch
-scsi-qla2xxx-wind-down-adapter-after-pcie-error.patch-6065
-scsi-qla2xxx-turn-off-multi-queue-for-8g-adapters.patch-24759
-scsi-qla2xxx-fix-crash-due-to-stale-srb-access-aroun.patch
-scsi-qla2xxx-fix-losing-fcp-2-targets-during-port-pe.patch
-scsi-qla2xxx-fix-losing-target-when-it-reappears-dur.patch
-scsi-qla2xxx-fix-losing-fcp-2-targets-on-long-port-d.patch
-scsi-qla2xxx-fix-erroneous-mailbox-timeout-after-pci.patch
 drm-vc4-drv-adopt-the-dma-configuration-from-the-hvs.patch
 usbnet-smsc95xx-don-t-clear-read-only-phy-interrupt.patch
 usbnet-smsc95xx-avoid-link-settings-race-on-interrup.patch
 usbnet-smsc95xx-forward-phy-interrupts-to-phy-driver.patch
 usbnet-smsc95xx-fix-deadlock-on-runtime-resume.patch
 firmware-arm_scpi-ensure-scpi_info-is-not-assigned-i.patch
-__follow_mount_rcu-verify-that-mount_lock-remains-un.patch
 scsi-lpfc-fix-eeh-support-for-nvme-i-o.patch
 scsi-lpfc-sli-path-split-refactor-lpfc_iocbq.patch
 scsi-lpfc-sli-path-split-refactor-fast-and-slow-path.patch
@@ -728,7 +719,6 @@ serial-8250-fold-endrun-device-support-into-oxsemi-t.patch
 serial-8250-add-proper-clock-handling-for-oxsemi-pci.patch
 tty-8250-add-support-for-brainboxes-px-cards.patch
 dm-writecache-set-a-default-max_writeback_jobs.patch
-x86-olpc-fix-logical-not-is-only-applied-to-the-left.patch
 topology-represent-clusters-of-cpus-within-a-die.patch
 topology-sysfs-export-die-attributes-only-if-an-arch.patch
 topology-sysfs-export-cluster-attributes-only-if-an-.patch
@@ -738,15 +728,9 @@ dm-thin-fix-use-after-free-crash-in-dm_sm_register_t.patch
 net-9p-initialize-the-iounit-field-during-fid-creati.patch
 arm-remove-some-dead-code.patch
 timekeeping-contribute-wall-clock-to-rng-on-time-cha.patch
-scsi-qla2xxx-fix-response-queue-handler-reading-stal.patch
-scsi-qla2xxx-edif-fix-dropped-ike-message.patch
-scsi-qla2xxx-fix-imbalance-vha-vref_count.patch-21291
-scsi-qla2xxx-fix-discovery-issues-in-fc-al-topology.patch-12842
-scsi-qla2xxx-update-manufacturer-details.patch
 locking-csd_lock-change-csdlock_debug-from-early_par.patch
 block-remove-the-struct-blk_queue_ctx-forward-declar.patch
 block-don-t-allow-the-same-type-rq_qos-add-more-than.patch
-spmi-trace-fix-stack-out-of-bound-access-in-spmi-tra.patch
 btrfs-ensure-pages-are-unlocked-on-cow_file_range-fa.patch
 btrfs-reset-block-group-chunk-force-if-we-have-to-wa.patch
 btrfs-properly-flag-filesystem-with-btrfs_feature_in.patch
@@ -759,11 +743,8 @@ kvm-vmx-add-helper-to-check-if-the-guest-pmu-has-per.patch
 kvm-nvmx-attempt-to-load-perf_global_ctrl-on-nvmx-xf.patch
 dm-raid-fix-address-sanitizer-warning-in-raid_status.patch
 dm-raid-fix-address-sanitizer-warning-in-raid_resume.patch
-ftrace-x86-add-back-ftrace_expected-assignment.patch-22490
 tracing-add-__rel_loc-using-trace-event-macros.patch
 tracing-avoid-warray-bounds-warning-for-__rel_loc-ma.patch
-input-gscps2-check-return-value-of-ioremap-in-gscps2.patch
-x86-kprobes-update-kcb-status-flag-after-singlestepp.patch
 ext4-update-s_overhead_clusters-in-the-superblock-du.patch
 ext4-fix-extent-status-tree-race-in-writeback-error-.patch
 ext4-add-ext4_inode_has_xattr_space-macro-in-xattr.h.patch
diff --git a/queue-5.15/spmi-trace-fix-stack-out-of-bound-access-in-spmi-tra.patch b/queue-5.15/spmi-trace-fix-stack-out-of-bound-access-in-spmi-tra.patch
deleted file mode 100644 (file)
index ed9d15d..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-From 2164f615c64d6f8549823f48cde9c7450e5e84d9 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 27 Jun 2022 16:55:12 -0700
-Subject: spmi: trace: fix stack-out-of-bound access in SPMI tracing functions
-
-From: David Collins <quic_collinsd@quicinc.com>
-
-[ Upstream commit 2af28b241eea816e6f7668d1954f15894b45d7e3 ]
-
-trace_spmi_write_begin() and trace_spmi_read_end() both call
-memcpy() with a length of "len + 1".  This leads to one extra
-byte being read beyond the end of the specified buffer.  Fix
-this out-of-bound memory access by using a length of "len"
-instead.
-
-Here is a KASAN log showing the issue:
-
-BUG: KASAN: stack-out-of-bounds in trace_event_raw_event_spmi_read_end+0x1d0/0x234
-Read of size 2 at addr ffffffc0265b7540 by task thermal@2.0-ser/1314
-...
-Call trace:
- dump_backtrace+0x0/0x3e8
- show_stack+0x2c/0x3c
- dump_stack_lvl+0xdc/0x11c
- print_address_description+0x74/0x384
- kasan_report+0x188/0x268
- kasan_check_range+0x270/0x2b0
- memcpy+0x90/0xe8
- trace_event_raw_event_spmi_read_end+0x1d0/0x234
- spmi_read_cmd+0x294/0x3ac
- spmi_ext_register_readl+0x84/0x9c
- regmap_spmi_ext_read+0x144/0x1b0 [regmap_spmi]
- _regmap_raw_read+0x40c/0x754
- regmap_raw_read+0x3a0/0x514
- regmap_bulk_read+0x418/0x494
- adc5_gen3_poll_wait_hs+0xe8/0x1e0 [qcom_spmi_adc5_gen3]
- ...
- __arm64_sys_read+0x4c/0x60
- invoke_syscall+0x80/0x218
- el0_svc_common+0xec/0x1c8
- ...
-
-addr ffffffc0265b7540 is located in stack of task thermal@2.0-ser/1314 at offset 32 in frame:
- adc5_gen3_poll_wait_hs+0x0/0x1e0 [qcom_spmi_adc5_gen3]
-
-this frame has 1 object:
- [32, 33) 'status'
-
-Memory state around the buggy address:
- ffffffc0265b7400: 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1
- ffffffc0265b7480: 04 f3 f3 f3 00 00 00 00 00 00 00 00 00 00 00 00
->ffffffc0265b7500: 00 00 00 00 f1 f1 f1 f1 01 f3 f3 f3 00 00 00 00
-                                           ^
- ffffffc0265b7580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- ffffffc0265b7600: f1 f1 f1 f1 01 f2 07 f2 f2 f2 01 f3 00 00 00 00
-==================================================================
-
-Fixes: a9fce374815d ("spmi: add command tracepoints for SPMI")
-Cc: stable@vger.kernel.org
-Reviewed-by: Stephen Boyd <sboyd@kernel.org>
-Acked-by: Steven Rostedt (Google) <rostedt@goodmis.org>
-Signed-off-by: David Collins <quic_collinsd@quicinc.com>
-Link: https://lore.kernel.org/r/20220627235512.2272783-1-quic_collinsd@quicinc.com
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- include/trace/events/spmi.h | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/include/trace/events/spmi.h b/include/trace/events/spmi.h
-index 8b60efe18ba6..a6819fd85cdf 100644
---- a/include/trace/events/spmi.h
-+++ b/include/trace/events/spmi.h
-@@ -21,15 +21,15 @@ TRACE_EVENT(spmi_write_begin,
-               __field         ( u8,         sid       )
-               __field         ( u16,        addr      )
-               __field         ( u8,         len       )
--              __dynamic_array ( u8,   buf,  len + 1   )
-+              __dynamic_array ( u8,   buf,  len       )
-       ),
-       TP_fast_assign(
-               __entry->opcode = opcode;
-               __entry->sid    = sid;
-               __entry->addr   = addr;
--              __entry->len    = len + 1;
--              memcpy(__get_dynamic_array(buf), buf, len + 1);
-+              __entry->len    = len;
-+              memcpy(__get_dynamic_array(buf), buf, len);
-       ),
-       TP_printk("opc=%d sid=%02d addr=0x%04x len=%d buf=0x[%*phD]",
-@@ -92,7 +92,7 @@ TRACE_EVENT(spmi_read_end,
-               __field         ( u16,        addr      )
-               __field         ( int,        ret       )
-               __field         ( u8,         len       )
--              __dynamic_array ( u8,   buf,  len + 1   )
-+              __dynamic_array ( u8,   buf,  len       )
-       ),
-       TP_fast_assign(
-@@ -100,8 +100,8 @@ TRACE_EVENT(spmi_read_end,
-               __entry->sid    = sid;
-               __entry->addr   = addr;
-               __entry->ret    = ret;
--              __entry->len    = len + 1;
--              memcpy(__get_dynamic_array(buf), buf, len + 1);
-+              __entry->len    = len;
-+              memcpy(__get_dynamic_array(buf), buf, len);
-       ),
-       TP_printk("opc=%d sid=%02d addr=0x%04x ret=%d len=%02d buf=0x[%*phD]",
--- 
-2.35.1
-
diff --git a/queue-5.15/x86-kprobes-update-kcb-status-flag-after-singlestepp.patch b/queue-5.15/x86-kprobes-update-kcb-status-flag-after-singlestepp.patch
deleted file mode 100644 (file)
index 69d4b68..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-From f0226069b64d2032c220973bcfcacef9358446ea Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 2 Aug 2022 15:04:16 +0900
-Subject: x86/kprobes: Update kcb status flag after singlestepping
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Masami Hiramatsu (Google) <mhiramat@kernel.org>
-
-[ Upstream commit dec8784c9088b131a1523f582c2194cfc8107dc0 ]
-
-Fix kprobes to update kcb (kprobes control block) status flag to
-KPROBE_HIT_SSDONE even if the kp->post_handler is not set.
-
-This bug may cause a kernel panic if another INT3 user runs right
-after kprobes because kprobe_int3_handler() misunderstands the
-INT3 is kprobe's single stepping INT3.
-
-Fixes: 6256e668b7af ("x86/kprobes: Use int3 instead of debug trap for single-step")
-Reported-by: Daniel Müller <deso@posteo.net>
-Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
-Signed-off-by: Ingo Molnar <mingo@kernel.org>
-Tested-by: Daniel Müller <deso@posteo.net>
-Cc: stable@vger.kernel.org
-Link: https://lore.kernel.org/all/20220727210136.jjgc3lpqeq42yr3m@muellerd-fedora-PC2BDTX9
-Link: https://lore.kernel.org/r/165942025658.342061.12452378391879093249.stgit@devnote2
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/x86/kernel/kprobes/core.c | 18 +++++++++++-------
- 1 file changed, 11 insertions(+), 7 deletions(-)
-
-diff --git a/arch/x86/kernel/kprobes/core.c b/arch/x86/kernel/kprobes/core.c
-index f6727c67ae02..7a7f671c60b4 100644
---- a/arch/x86/kernel/kprobes/core.c
-+++ b/arch/x86/kernel/kprobes/core.c
-@@ -816,16 +816,20 @@ NOKPROBE_SYMBOL(arch_prepare_kretprobe);
- static void kprobe_post_process(struct kprobe *cur, struct pt_regs *regs,
-                              struct kprobe_ctlblk *kcb)
- {
--      if ((kcb->kprobe_status != KPROBE_REENTER) && cur->post_handler) {
--              kcb->kprobe_status = KPROBE_HIT_SSDONE;
--              cur->post_handler(cur, regs, 0);
--      }
--
-       /* Restore back the original saved kprobes variables and continue. */
--      if (kcb->kprobe_status == KPROBE_REENTER)
-+      if (kcb->kprobe_status == KPROBE_REENTER) {
-+              /* This will restore both kcb and current_kprobe */
-               restore_previous_kprobe(kcb);
--      else
-+      } else {
-+              /*
-+               * Always update the kcb status because
-+               * reset_curent_kprobe() doesn't update kcb.
-+               */
-+              kcb->kprobe_status = KPROBE_HIT_SSDONE;
-+              if (cur->post_handler)
-+                      cur->post_handler(cur, regs, 0);
-               reset_current_kprobe();
-+      }
- }
- NOKPROBE_SYMBOL(kprobe_post_process);
--- 
-2.35.1
-
diff --git a/queue-5.15/x86-olpc-fix-logical-not-is-only-applied-to-the-left.patch b/queue-5.15/x86-olpc-fix-logical-not-is-only-applied-to-the-left.patch
deleted file mode 100644 (file)
index fa1a644..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-From 91089205ead74e301d3394fcc2dc38ba07f63541 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 15 Jul 2022 17:15:36 +0200
-Subject: x86/olpc: fix 'logical not is only applied to the left hand side'
-
-From: Alexander Lobakin <alexandr.lobakin@intel.com>
-
-[ Upstream commit 3a2ba42cbd0b669ce3837ba400905f93dd06c79f ]
-
-The bitops compile-time optimization series revealed one more
-problem in olpc-xo1-sci.c:send_ebook_state(), resulted in GCC
-warnings:
-
-arch/x86/platform/olpc/olpc-xo1-sci.c: In function 'send_ebook_state':
-arch/x86/platform/olpc/olpc-xo1-sci.c:83:63: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses]
-   83 |         if (!!test_bit(SW_TABLET_MODE, ebook_switch_idev->sw) == state)
-      |                                                               ^~
-arch/x86/platform/olpc/olpc-xo1-sci.c:83:13: note: add parentheses around left hand side expression to silence this warning
-
-Despite this code working as intended, this redundant double
-negation of boolean value, together with comparing to `char`
-with no explicit conversion to bool, makes compilers think
-the author made some unintentional logical mistakes here.
-Make it the other way around and negate the char instead
-to silence the warnings.
-
-Fixes: d2aa37411b8e ("x86/olpc/xo1/sci: Produce wakeup events for buttons and switches")
-Cc: stable@vger.kernel.org # 3.5+
-Reported-by: Guenter Roeck <linux@roeck-us.net>
-Reported-by: kernel test robot <lkp@intel.com>
-Reviewed-and-tested-by: Guenter Roeck <linux@roeck-us.net>
-Signed-off-by: Alexander Lobakin <alexandr.lobakin@intel.com>
-Signed-off-by: Yury Norov <yury.norov@gmail.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- arch/x86/platform/olpc/olpc-xo1-sci.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/x86/platform/olpc/olpc-xo1-sci.c b/arch/x86/platform/olpc/olpc-xo1-sci.c
-index f03a6883dcc6..89f25af4b3c3 100644
---- a/arch/x86/platform/olpc/olpc-xo1-sci.c
-+++ b/arch/x86/platform/olpc/olpc-xo1-sci.c
-@@ -80,7 +80,7 @@ static void send_ebook_state(void)
-               return;
-       }
--      if (!!test_bit(SW_TABLET_MODE, ebook_switch_idev->sw) == state)
-+      if (test_bit(SW_TABLET_MODE, ebook_switch_idev->sw) == !!state)
-               return; /* Nothing new to report. */
-       input_report_switch(ebook_switch_idev, SW_TABLET_MODE, state);
--- 
-2.35.1
-