| From: Shivasharan S <shivasharan.srikanteshwara@broadcom.com> |
| Date: Tue, 18 Dec 2018 05:59:54 -0800 |
| Subject: scsi: megaraid_sas: Use 63-bit DMA addressing |
| |
| commit 894169db12463cea08d0e2a9e35f42b291340e5a upstream. |
| |
| Although MegaRAID controllers support 64-bit DMA addressing, as per |
| hardware design, DMA address with all 64-bits set |
| (0xFFFFFFFF-FFFFFFFF) results in a firmware fault. |
| |
| Driver will set 63-bit DMA mask to ensure the above address will not be |
| used. |
| |
| Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com> |
| Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> |
| [bwh: Backported to 3.16: Only one instance of a 64-bit mask needs changing] |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| --- a/drivers/scsi/megaraid/megaraid_sas_base.c |
| +++ b/drivers/scsi/megaraid/megaraid_sas_base.c |
| @@ -4592,7 +4592,7 @@ megasas_set_dma_mask(struct pci_dev *pde |
| * All our contollers are capable of performing 64-bit DMA |
| */ |
| if (IS_DMA64) { |
| - if (pci_set_dma_mask(pdev, DMA_BIT_MASK(64)) != 0) { |
| + if (pci_set_dma_mask(pdev, DMA_BIT_MASK(63)) != 0) { |
| |
| if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32)) != 0) |
| goto fail_set_dma_mask; |