scsi: myrs: Fix dma_alloc_coherent() error check
Check for NULL return value with dma_alloc_coherent(), because DMA
address is not always set by dma_alloc_coherent() on failure.
Fixes: 7726618639
("scsi: myrs: Add Mylex RAID controller (SCSI interface)")
Signed-off-by: Thomas Fourier <fourier.thomas@gmail.com>
Link: https://lore.kernel.org/r/20250725083112.43975-2-fourier.thomas@gmail.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
e79aa10e28
commit
edb35b1ffc
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue