]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
scsi: mpi3mr: Serialize admin queue BAR writes on 32-bit systems
authorRanjan Kumar <ranjan.kumar@broadcom.com>
Fri, 22 Aug 2025 15:10:13 +0000 (11:10 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 28 Aug 2025 14:26:15 +0000 (16:26 +0200)
commitbc6e96169cc27ec1cbff43d3ebb85e71633f511a
treee2d79fdcd533123c28324dfa19aa4aa0d8cf1fc0
parent1f3452a0d4864cf39a3bf31414655538a89fa7f7
scsi: mpi3mr: Serialize admin queue BAR writes on 32-bit systems

[ Upstream commit c91e140c82eb58724c435f623702e51cc7896646 ]

On 32-bit systems, 64-bit BAR writes to admin queue registers are
performed as two 32-bit writes. Without locking, this can cause partial
writes when accessed concurrently.

Updated per-queue spinlocks is used to serialize these writes and prevent
race conditions.

Fixes: 824a156633df ("scsi: mpi3mr: Base driver code")
Cc: stable@vger.kernel.org
Signed-off-by: Ranjan Kumar <ranjan.kumar@broadcom.com>
Link: https://lore.kernel.org/r/20250627194539.48851-4-ranjan.kumar@broadcom.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/scsi/mpi3mr/mpi3mr.h
drivers/scsi/mpi3mr/mpi3mr_fw.c
drivers/scsi/mpi3mr/mpi3mr_os.c