On 10/18/18 6:03 AM, Christoph Hellwig wrote:
This also moves the optimization for builds with 32-bit dma_addr_t to
the compiler (where it belongs) instead of opencoding it based on
incorrect assumptions.

Signed-off-by: Christoph Hellwig <h...@lst.de>
---
  drivers/scsi/qla2xxx/qla_target.c | 8 ++++----
  drivers/scsi/qla2xxx/qla_target.h | 8 --------
  2 files changed, 4 insertions(+), 12 deletions(-)

diff --git a/drivers/scsi/qla2xxx/qla_target.c 
b/drivers/scsi/qla2xxx/qla_target.c
index 39828207bc1d..443711238c0e 100644
--- a/drivers/scsi/qla2xxx/qla_target.c
+++ b/drivers/scsi/qla2xxx/qla_target.c
@@ -2660,9 +2660,9 @@ static void qlt_load_cont_data_segments(struct 
qla_tgt_prm *prm)
                    cnt < QLA_TGT_DATASEGS_PER_CONT_24XX && prm->seg_cnt;
                    cnt++, prm->seg_cnt--) {
                        *dword_ptr++ =
-                           cpu_to_le32(pci_dma_lo32
+                           cpu_to_le32(lower_32_bits
                                (sg_dma_address(prm->sg)));
-                       *dword_ptr++ = cpu_to_le32(pci_dma_hi32
+                       *dword_ptr++ = cpu_to_le32(upper_32_bits
                            (sg_dma_address(prm->sg)));
                        *dword_ptr++ = cpu_to_le32(sg_dma_len(prm->sg));
@@ -2704,9 +2704,9 @@ static void qlt_load_data_segments(struct qla_tgt_prm *prm)
            (cnt < QLA_TGT_DATASEGS_PER_CMD_24XX) && prm->seg_cnt;
            cnt++, prm->seg_cnt--) {
                *dword_ptr++ =
-                   cpu_to_le32(pci_dma_lo32(sg_dma_address(prm->sg)));
+                   cpu_to_le32(lower_32_bits(sg_dma_address(prm->sg)));
- *dword_ptr++ = cpu_to_le32(pci_dma_hi32(
+               *dword_ptr++ = cpu_to_le32(upper_32_bits(
                        sg_dma_address(prm->sg)));

Hi Christoph,

Have you considered to use put_unaligned_le64() instead of storing the lower and upper 32 bits separately?

Thanks,

Bart.

Reply via email to