scsi: mpt3sas: fix dma_addr_t casts
authorArnd Bergmann <arnd@arndb.de>
Mon, 6 Nov 2017 13:35:16 +0000 (14:35 +0100)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 7 Nov 2017 04:01:53 +0000 (23:01 -0500)
commitd8335ae2b453f9efb2e88b71ae3cde0c010a5ac0
tree9ffbf991e35631dfc09b063612b7a3a37cc48067
parentd38c9a803b42d19d125aff586dfaac77b5702d05
scsi: mpt3sas: fix dma_addr_t casts

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: 016d5c35e278 ("scsi: mpt3sas: SGL to PRP Translation for I/Os to NVMe devices")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Sathya Prakash Veerichetty <sathya.prakash@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/mpt3sas/mpt3sas_base.c
drivers/scsi/mpt3sas/mpt3sas_base.h