[PATCH] scsi: myrs: Fix dma_alloc_coherent error check

Thomas Fourier posted 1 patch 2 months, 1 week ago
drivers/scsi/myrs.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
[PATCH] scsi: myrs: Fix dma_alloc_coherent error check
Posted by Thomas Fourier 2 months, 1 week ago
Check for NULL return value with dma_alloc_coherent, because
DMA address is not always set by dma_alloc_coherent on failure.

Fixes: 77266186397c ("scsi: myrs: Add Mylex RAID controller (SCSI interface)")
Signed-off-by: Thomas Fourier <fourier.thomas@gmail.com>
---
 drivers/scsi/myrs.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/scsi/myrs.c b/drivers/scsi/myrs.c
index 95af3bb03834..a58abd796603 100644
--- a/drivers/scsi/myrs.c
+++ b/drivers/scsi/myrs.c
@@ -498,14 +498,14 @@ static bool myrs_enable_mmio_mbox(struct myrs_hba *cs,
 	/* Temporary dma mapping, used only in the scope of this function */
 	mbox = dma_alloc_coherent(&pdev->dev, sizeof(union myrs_cmd_mbox),
 				  &mbox_addr, GFP_KERNEL);
-	if (dma_mapping_error(&pdev->dev, mbox_addr))
+	if (!mbox)
 		return false;
 
 	/* These are the base addresses for the command memory mailbox array */
 	cs->cmd_mbox_size = MYRS_MAX_CMD_MBOX * sizeof(union myrs_cmd_mbox);
 	cmd_mbox = dma_alloc_coherent(&pdev->dev, cs->cmd_mbox_size,
 				      &cs->cmd_mbox_addr, GFP_KERNEL);
-	if (dma_mapping_error(&pdev->dev, cs->cmd_mbox_addr)) {
+	if (!cmd_mbox) {
 		dev_err(&pdev->dev, "Failed to map command mailbox\n");
 		goto out_free;
 	}
@@ -520,7 +520,7 @@ static bool myrs_enable_mmio_mbox(struct myrs_hba *cs,
 	cs->stat_mbox_size = MYRS_MAX_STAT_MBOX * sizeof(struct myrs_stat_mbox);
 	stat_mbox = dma_alloc_coherent(&pdev->dev, cs->stat_mbox_size,
 				       &cs->stat_mbox_addr, GFP_KERNEL);
-	if (dma_mapping_error(&pdev->dev, cs->stat_mbox_addr)) {
+	if (!stat_mbox) {
 		dev_err(&pdev->dev, "Failed to map status mailbox\n");
 		goto out_free;
 	}
@@ -533,7 +533,7 @@ static bool myrs_enable_mmio_mbox(struct myrs_hba *cs,
 	cs->fwstat_buf = dma_alloc_coherent(&pdev->dev,
 					    sizeof(struct myrs_fwstat),
 					    &cs->fwstat_addr, GFP_KERNEL);
-	if (dma_mapping_error(&pdev->dev, cs->fwstat_addr)) {
+	if (!cs->fwstat_buf) {
 		dev_err(&pdev->dev, "Failed to map firmware health buffer\n");
 		cs->fwstat_buf = NULL;
 		goto out_free;
-- 
2.43.0
Re: [PATCH] scsi: myrs: Fix dma_alloc_coherent error check
Posted by Martin K. Petersen 1 month ago
On Fri, 25 Jul 2025 10:31:06 +0200, Thomas Fourier wrote:

> Check for NULL return value with dma_alloc_coherent, because
> DMA address is not always set by dma_alloc_coherent on failure.
> 
> 

Applied to 6.18/scsi-queue, thanks!

[1/1] scsi: myrs: Fix dma_alloc_coherent error check
      https://git.kernel.org/mkp/scsi/c/edb35b1ffc68

-- 
Martin K. Petersen
Re: [PATCH] scsi: myrs: Fix dma_alloc_coherent error check
Posted by Martin K. Petersen 1 month, 1 week ago
On Fri, 25 Jul 2025 10:31:06 +0200, Thomas Fourier wrote:

> Check for NULL return value with dma_alloc_coherent, because
> DMA address is not always set by dma_alloc_coherent on failure.
> 
> 

Applied to 6.18/scsi-queue, thanks!

[1/1] scsi: myrs: Fix dma_alloc_coherent error check
      https://git.kernel.org/mkp/scsi/c/edb35b1ffc68

-- 
Martin K. Petersen
Re: [PATCH] scsi: myrs: Fix dma_alloc_coherent error check
Posted by Martin K. Petersen 1 month, 2 weeks ago
Thomas,

> Check for NULL return value with dma_alloc_coherent, because
> DMA address is not always set by dma_alloc_coherent on failure.

Applied to 6.18/scsi-staging, thanks!

-- 
Martin K. Petersen