s390/zfcp: use new address translation helpers
authorHeiko Carstens <hca@linux.ibm.com>
Thu, 7 Mar 2024 12:28:21 +0000 (13:28 +0100)
committerHeiko Carstens <hca@linux.ibm.com>
Wed, 13 Mar 2024 08:23:48 +0000 (09:23 +0100)
Use virt_to_dma64() and friends to properly convert virtual to physical and
physical to virtual addresses so that "make C=1" does not generate any
warnings anymore.

Reviewed-by: Steffen Maier <maier@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
drivers/s390/scsi/zfcp_fsf.c
drivers/s390/scsi/zfcp_qdio.c
drivers/s390/scsi/zfcp_qdio.h

index ceed1b6f7cb6114a50d241b522aafccf61a295b7..22e82000334ab46255b610708683b6e904a94952 100644 (file)
@@ -2742,7 +2742,7 @@ void zfcp_fsf_reqid_check(struct zfcp_qdio *qdio, int sbal_idx)
        for (idx = 0; idx < QDIO_MAX_ELEMENTS_PER_BUFFER; idx++) {
 
                sbale = &sbal->element[idx];
-               req_id = sbale->addr;
+               req_id = dma64_to_u64(sbale->addr);
                fsf_req = zfcp_reqlist_find_rm(adapter->req_list, req_id);
 
                if (!fsf_req) {
index f54f506b02d66f709a002216ef2301ff7b343fe0..8cbc5e1711af055ebf7f66ac3e6a2383a3c2be71 100644 (file)
@@ -125,7 +125,7 @@ static void zfcp_qdio_int_resp(struct ccw_device *cdev, unsigned int qdio_err,
                        memset(pl, 0,
                               ZFCP_QDIO_MAX_SBALS_PER_REQ * sizeof(void *));
                        sbale = qdio->res_q[idx]->element;
-                       req_id = sbale->addr;
+                       req_id = dma64_to_u64(sbale->addr);
                        scount = min(sbale->scount + 1,
                                     ZFCP_QDIO_MAX_SBALS_PER_REQ + 1);
                                     /* incl. signaling SBAL */
@@ -256,7 +256,7 @@ int zfcp_qdio_sbals_from_sg(struct zfcp_qdio *qdio, struct zfcp_qdio_req *q_req,
                                             q_req->sbal_number);
                        return -EINVAL;
                }
-               sbale->addr = sg_phys(sg);
+               sbale->addr = u64_to_dma64(sg_phys(sg));
                sbale->length = sg->length;
        }
        return 0;
index 90134d9b69a77adba7044c91042cc08e0135e631..8f7d2ae94441ae9e23da4ce050ede741588badca 100644 (file)
@@ -129,14 +129,14 @@ void zfcp_qdio_req_init(struct zfcp_qdio *qdio, struct zfcp_qdio_req *q_req,
                                        % QDIO_MAX_BUFFERS_PER_Q;
 
        sbale = zfcp_qdio_sbale_req(qdio, q_req);
-       sbale->addr = req_id;
+       sbale->addr = u64_to_dma64(req_id);
        sbale->eflags = 0;
        sbale->sflags = SBAL_SFLAGS0_COMMAND | sbtype;
 
        if (unlikely(!data))
                return;
        sbale++;
-       sbale->addr = virt_to_phys(data);
+       sbale->addr = virt_to_dma64(data);
        sbale->length = len;
 }
 
@@ -159,7 +159,7 @@ void zfcp_qdio_fill_next(struct zfcp_qdio *qdio, struct zfcp_qdio_req *q_req,
        BUG_ON(q_req->sbale_curr == qdio->max_sbale_per_sbal - 1);
        q_req->sbale_curr++;
        sbale = zfcp_qdio_sbale_curr(qdio, q_req);
-       sbale->addr = virt_to_phys(data);
+       sbale->addr = virt_to_dma64(data);
        sbale->length = len;
 }