scsi: arcmsr: Fix ADAPTER_TYPE_B 64-bit DMA compatibility issue
authorching Huang <ching2048@areca.com.tw>
Wed, 22 Mar 2023 17:13:20 +0000 (01:13 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 24 Mar 2023 21:52:49 +0000 (17:52 -0400)
Fix ADAPTER_TYPE_B 64-bit DMA compatibility issue on some motherboards.

Signed-off-by: ching Huang <ching2048@areca.com.tw>
Link: https://lore.kernel.org/r/81c1f98819dfdfa18ae4d3b854b7733af9d34ea5.camel@areca.com.tw
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/arcmsr/arcmsr_hba.c

index 603860959c5ff623937c96815593b492eb499a1d..ce92d4281da6f600a9709414d798c3ddbbe993aa 100644 (file)
@@ -997,6 +997,8 @@ static int arcmsr_set_dma_mask(struct AdapterControlBlock *acb)
                if (((acb->adapter_type == ACB_ADAPTER_TYPE_A) && !dma_mask_64) ||
                    dma_set_mask(&pcidev->dev, DMA_BIT_MASK(64)))
                        goto    dma32;
+               if (acb->adapter_type <= ACB_ADAPTER_TYPE_B)
+                       return 0;
                if (dma_set_coherent_mask(&pcidev->dev, DMA_BIT_MASK(64)) ||
                    dma_set_mask_and_coherent(&pcidev->dev, DMA_BIT_MASK(64))) {
                        printk("arcmsr: set DMA 64 mask failed\n");