scsi: mpi3mr: Fix pending I/O counter
authorRanjan Kumar <ranjan.kumar@broadcom.com>
Fri, 11 Apr 2025 11:14:18 +0000 (16:44 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 2 May 2025 05:59:06 +0000 (07:59 +0200)
commit cdd445258db9919e9dde497a6d5c3477ea7faf4d upstream.

Commit 199510e33dea ("scsi: mpi3mr: Update consumer index of reply
queues after every 100 replies") introduced a regression with the
per-reply queue pending I/O counter which was erroneously decremented,
leading to the counter going negative.

Drop the incorrect atomic decrement for the pending I/O counter.

Fixes: 199510e33dea ("scsi: mpi3mr: Update consumer index of reply queues after every 100 replies")
Cc: stable@vger.kernel.org
Co-developed-by: Sathya Prakash <sathya.prakash@broadcom.com>
Signed-off-by: Sathya Prakash <sathya.prakash@broadcom.com>
Signed-off-by: Ranjan Kumar <ranjan.kumar@broadcom.com>
Link: https://lore.kernel.org/r/20250411111419.135485-2-ranjan.kumar@broadcom.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/scsi/mpi3mr/mpi3mr_fw.c

index ec5b1ab2871776467dca041d475299891c0d5dc4..c0a372868e1d7f7ccbbbd9f2884dfa6aadbd9758 100644 (file)
@@ -563,7 +563,7 @@ int mpi3mr_process_op_reply_q(struct mpi3mr_ioc *mrioc,
                WRITE_ONCE(op_req_q->ci, le16_to_cpu(reply_desc->request_queue_ci));
                mpi3mr_process_op_reply_desc(mrioc, reply_desc, &reply_dma,
                    reply_qidx);
-               atomic_dec(&op_reply_q->pend_ios);
+
                if (reply_dma)
                        mpi3mr_repost_reply_buf(mrioc, reply_dma);
                num_op_reply++;