]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit4d43568feb36547cd83ff67ddb099b7e3eb87cfe
tree9ffbf991e35631dfc09b063612b7a3a37cc48067
parentccce55fee6e97192e25ba112ad9ff6e3bcb288df
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: 5dde4174295e ("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