• Arnd Bergmann's avatar
    scsi: mpt3sas: fix dma_addr_t casts · d8335ae2
    Arnd Bergmann authored
    The newly added base_make_prp_nvme function triggers a build warning on
    some 32-bit configurations:
    
    drivers/scsi/mpt3sas/mpt3sas_base.c: In function 'base_make_prp_nvme':
    drivers/scsi/mpt3sas/mpt3sas_base.c:1664:13: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
      msg_phys = (dma_addr_t)mpt3sas_base_get_pcie_sgl_dma(ioc, smid);
    
    After taking a closer look, I found that the problem is that the new
    code mixes up pointers and dma_addr_t values unnecessarily.
    
    This changes it to use the correct types consistently, which lets us get
    rid of a lot of type casts in the process. I'm also renaming some
    variables to avoid confusion between physical and dma address spaces
    that are often distinct.
    
    Fixes: 016d5c35 ("scsi: mpt3sas: SGL to PRP Translation for I/Os to NVMe devices")
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Acked-by: default avatarSathya Prakash Veerichetty <sathya.prakash@broadcom.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    d8335ae2
mpt3sas_base.h 52.6 KB