On Fri, Nov 14, 2025 at 02:11:40PM +0530, Kumari Pallavi wrote:
> Update all references of buf->phys and map->phys to buf->dma_addr and
> map->dma_addr to accurately represent that these fields store DMA
> addresses, not physical addresses. This change improves code clarity
> and aligns with kernel conventions for dma_addr_t usage.

Why do you mention dma_addr_t here?

> 
> Signed-off-by: Kumari Pallavi <[email protected]>
> ---
>  drivers/misc/fastrpc.c | 76 ++++++++++++++++++++++--------------------
>  1 file changed, 40 insertions(+), 36 deletions(-)
> 
> diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c
> index ee652ef01534..d6a7960fe716 100644
> --- a/drivers/misc/fastrpc.c
> +++ b/drivers/misc/fastrpc.c
> @@ -106,7 +106,7 @@
>  #define miscdev_to_fdevice(d) container_of(d, struct fastrpc_device, miscdev)
>  
>  struct fastrpc_phy_page {
> -     u64 addr;               /* physical address */
> +     u64 addr;               /* physical or dma address */

What is the difference here? Aren't all of them DMA addresses?

>       u64 size;               /* size of contiguous region */
>  };
>  
> @@ -171,7 +171,7 @@ struct fastrpc_msg {
>       u64 ctx;                /* invoke caller context */
>       u32 handle;     /* handle to invoke */
>       u32 sc;         /* scalars structure describing the data */
> -     u64 addr;               /* physical address */
> +     u64 addr;               /* physical or dma address */
>       u64 size;               /* size of contiguous region */
>  };
>  
> @@ -194,7 +194,7 @@ struct fastrpc_buf {
>       struct dma_buf *dmabuf;
>       struct device *dev;
>       void *virt;
> -     u64 phys;
> +     u64 dma_addr;
>       u64 size;
>       /* Lock for dma buf attachments */
>       struct mutex lock;
> @@ -217,7 +217,7 @@ struct fastrpc_map {
>       struct dma_buf *buf;
>       struct sg_table *table;
>       struct dma_buf_attachment *attach;
> -     u64 phys;
> +     u64 dma_addr;
>       u64 size;
>       void *va;
>       u64 len;
> @@ -320,11 +320,12 @@ static void fastrpc_free_map(struct kref *ref)
>  
>                       perm.vmid = QCOM_SCM_VMID_HLOS;
>                       perm.perm = QCOM_SCM_PERM_RWX;
> -                     err = qcom_scm_assign_mem(map->phys, map->len,
> +                     err = qcom_scm_assign_mem(map->dma_addr, map->len,
>                               &src_perms, &perm, 1);
>                       if (err) {
> -                             dev_err(map->fl->sctx->dev, "Failed to assign 
> memory phys 0x%llx size 0x%llx err %d\n",
> -                                             map->phys, map->len, err);
> +                             dev_err(map->fl->sctx->dev,
> +                                     "Failed to assign memory dma_addr 
> 0x%llx size 0x%llx err %d\n",
> +                                     map->dma_addr, map->len, err);
>                               return;
>                       }
>               }
> @@ -389,7 +390,7 @@ static int fastrpc_map_lookup(struct fastrpc_user *fl, 
> int fd,
>  static void fastrpc_buf_free(struct fastrpc_buf *buf)
>  {
>       dma_free_coherent(buf->dev, buf->size, buf->virt,
> -                       FASTRPC_PHYS(buf->phys));
> +                       FASTRPC_PHYS(buf->dma_addr));
>       kfree(buf);
>  }
>  
> @@ -408,12 +409,12 @@ static int __fastrpc_buf_alloc(struct fastrpc_user *fl, 
> struct device *dev,
>  
>       buf->fl = fl;
>       buf->virt = NULL;
> -     buf->phys = 0;
> +     buf->dma_addr = 0;
>       buf->size = size;
>       buf->dev = dev;
>       buf->raddr = 0;
>  
> -     buf->virt = dma_alloc_coherent(dev, buf->size, (dma_addr_t *)&buf->phys,
> +     buf->virt = dma_alloc_coherent(dev, buf->size, (dma_addr_t 
> *)&buf->dma_addr,
>                                      GFP_KERNEL);
>       if (!buf->virt) {
>               mutex_destroy(&buf->lock);
> @@ -439,7 +440,7 @@ static int fastrpc_buf_alloc(struct fastrpc_user *fl, 
> struct device *dev,
>       buf = *obuf;
>  
>       if (fl->sctx && fl->sctx->sid)
> -             buf->phys += ((u64)fl->sctx->sid << 32);
> +             buf->dma_addr += ((u64)fl->sctx->sid << 32);
>  
>       return 0;
>  }
> @@ -684,7 +685,7 @@ static int fastrpc_dma_buf_attach(struct dma_buf *dmabuf,
>               return -ENOMEM;
>  
>       ret = dma_get_sgtable(buffer->dev, &a->sgt, buffer->virt,
> -                           FASTRPC_PHYS(buffer->phys), buffer->size);
> +                           FASTRPC_PHYS(buffer->dma_addr), buffer->size);
>       if (ret < 0) {
>               dev_err(buffer->dev, "failed to get scatterlist from DMA 
> API\n");
>               kfree(a);
> @@ -733,7 +734,7 @@ static int fastrpc_mmap(struct dma_buf *dmabuf,
>       dma_resv_assert_held(dmabuf->resv);
>  
>       return dma_mmap_coherent(buf->dev, vma, buf->virt,
> -                              FASTRPC_PHYS(buf->phys), size);
> +                              FASTRPC_PHYS(buf->dma_addr), size);
>  }
>  
>  static const struct dma_buf_ops fastrpc_dma_buf_ops = {
> @@ -785,10 +786,10 @@ static int fastrpc_map_attach(struct fastrpc_user *fl, 
> int fd,
>       map->table = table;
>  
>       if (attr & FASTRPC_ATTR_SECUREMAP) {
> -             map->phys = sg_phys(map->table->sgl);
> +             map->dma_addr = sg_phys(map->table->sgl);
>       } else {
> -             map->phys = sg_dma_address(map->table->sgl);
> -             map->phys += ((u64)fl->sctx->sid << 32);
> +             map->dma_addr = sg_dma_address(map->table->sgl);
> +             map->dma_addr += ((u64)fl->sctx->sid << 32);
>       }
>       for_each_sg(map->table->sgl, sgl, map->table->nents,
>               sgl_index)
> @@ -815,10 +816,11 @@ static int fastrpc_map_attach(struct fastrpc_user *fl, 
> int fd,
>               dst_perms[1].vmid = fl->cctx->vmperms[0].vmid;
>               dst_perms[1].perm = QCOM_SCM_PERM_RWX;
>               map->attr = attr;
> -             err = qcom_scm_assign_mem(map->phys, (u64)map->len, &src_perms, 
> dst_perms, 2);
> +             err = qcom_scm_assign_mem(map->dma_addr, (u64)map->len, 
> &src_perms, dst_perms, 2);
>               if (err) {
> -                     dev_err(sess->dev, "Failed to assign memory with phys 
> 0x%llx size 0x%llx err %d\n",
> -                                     map->phys, map->len, err);
> +                     dev_err(sess->dev,
> +                             "Failed to assign memory with dma_addr 0x%llx 
> size 0x%llx err %d\n",
> +                             map->dma_addr, map->len, err);
>                       goto map_err;
>               }
>       }
> @@ -1009,7 +1011,7 @@ static int fastrpc_get_args(u32 kernel, struct 
> fastrpc_invoke_ctx *ctx)
>                       struct vm_area_struct *vma = NULL;
>  
>                       rpra[i].buf.pv = (u64) ctx->args[i].ptr;
> -                     pages[i].addr = ctx->maps[i]->phys;
> +                     pages[i].addr = ctx->maps[i]->dma_addr;
>  
>                       mmap_read_lock(current->mm);
>                       vma = find_vma(current->mm, ctx->args[i].ptr);
> @@ -1036,7 +1038,7 @@ static int fastrpc_get_args(u32 kernel, struct 
> fastrpc_invoke_ctx *ctx)
>                               goto bail;
>  
>                       rpra[i].buf.pv = args - ctx->olaps[oix].offset;
> -                     pages[i].addr = ctx->buf->phys -
> +                     pages[i].addr = ctx->buf->dma_addr -
>                                       ctx->olaps[oix].offset +
>                                       (pkt_size - rlen);
>                       pages[i].addr = pages[i].addr & PAGE_MASK;
> @@ -1068,7 +1070,7 @@ static int fastrpc_get_args(u32 kernel, struct 
> fastrpc_invoke_ctx *ctx)
>               list[i].num = ctx->args[i].length ? 1 : 0;
>               list[i].pgidx = i;
>               if (ctx->maps[i]) {
> -                     pages[i].addr = ctx->maps[i]->phys;
> +                     pages[i].addr = ctx->maps[i]->dma_addr;
>                       pages[i].size = ctx->maps[i]->size;
>               }
>               rpra[i].dma.fd = ctx->args[i].fd;
> @@ -1150,7 +1152,7 @@ static int fastrpc_invoke_send(struct 
> fastrpc_session_ctx *sctx,
>       msg->ctx = ctx->ctxid | fl->pd;
>       msg->handle = handle;
>       msg->sc = ctx->sc;
> -     msg->addr = ctx->buf ? ctx->buf->phys : 0;
> +     msg->addr = ctx->buf ? ctx->buf->dma_addr : 0;
>       msg->size = roundup(ctx->msg_sz, PAGE_SIZE);
>       fastrpc_context_get(ctx);
>  
> @@ -1306,13 +1308,14 @@ static int fastrpc_init_create_static_process(struct 
> fastrpc_user *fl,
>               if (fl->cctx->vmcount) {
>                       u64 src_perms = BIT(QCOM_SCM_VMID_HLOS);
>  
> -                     err = qcom_scm_assign_mem(fl->cctx->remote_heap->phys,
> +                     err = 
> qcom_scm_assign_mem(fl->cctx->remote_heap->dma_addr,
>                                                       
> (u64)fl->cctx->remote_heap->size,
>                                                       &src_perms,
>                                                       fl->cctx->vmperms, 
> fl->cctx->vmcount);
>                       if (err) {
> -                             dev_err(fl->sctx->dev, "Failed to assign memory 
> with phys 0x%llx size 0x%llx err %d\n",
> -                                     fl->cctx->remote_heap->phys, 
> fl->cctx->remote_heap->size, err);
> +                             dev_err(fl->sctx->dev,
> +                                     "Failed to assign memory with dma_addr 
> 0x%llx size 0x%llx err %d\n",
> +                                     fl->cctx->remote_heap->dma_addr, 
> fl->cctx->remote_heap->size, err);
>                               goto err_map;
>                       }
>                       scm_done = true;
> @@ -1332,7 +1335,7 @@ static int fastrpc_init_create_static_process(struct 
> fastrpc_user *fl,
>       args[1].length = inbuf.namelen;
>       args[1].fd = -1;
>  
> -     pages[0].addr = fl->cctx->remote_heap->phys;
> +     pages[0].addr = fl->cctx->remote_heap->dma_addr;
>       pages[0].size = fl->cctx->remote_heap->size;
>  
>       args[2].ptr = (u64)(uintptr_t) pages;
> @@ -1361,12 +1364,12 @@ static int fastrpc_init_create_static_process(struct 
> fastrpc_user *fl,
>  
>               dst_perms.vmid = QCOM_SCM_VMID_HLOS;
>               dst_perms.perm = QCOM_SCM_PERM_RWX;
> -             err = qcom_scm_assign_mem(fl->cctx->remote_heap->phys,
> +             err = qcom_scm_assign_mem(fl->cctx->remote_heap->dma_addr,
>                                               
> (u64)fl->cctx->remote_heap->size,
>                                               &src_perms, &dst_perms, 1);
>               if (err)
> -                     dev_err(fl->sctx->dev, "Failed to assign memory phys 
> 0x%llx size 0x%llx err %d\n",
> -                             fl->cctx->remote_heap->phys, 
> fl->cctx->remote_heap->size, err);
> +                     dev_err(fl->sctx->dev, "Failed to assign memory 
> dma_addr 0x%llx size 0x%llx err %d\n",
> +                             fl->cctx->remote_heap->dma_addr, 
> fl->cctx->remote_heap->size, err);
>       }
>  err_map:
>       fastrpc_buf_free(fl->cctx->remote_heap);
> @@ -1455,7 +1458,7 @@ static int fastrpc_init_create_process(struct 
> fastrpc_user *fl,
>       args[2].length = inbuf.filelen;
>       args[2].fd = init.filefd;
>  
> -     pages[0].addr = imem->phys;
> +     pages[0].addr = imem->dma_addr;
>       pages[0].size = imem->size;
>  
>       args[3].ptr = (u64)(uintptr_t) pages;
> @@ -1913,7 +1916,7 @@ static int fastrpc_req_mmap(struct fastrpc_user *fl, 
> char __user *argp)
>       args[0].ptr = (u64) (uintptr_t) &req_msg;
>       args[0].length = sizeof(req_msg);
>  
> -     pages.addr = buf->phys;
> +     pages.addr = buf->dma_addr;
>       pages.size = buf->size;
>  
>       args[1].ptr = (u64) (uintptr_t) &pages;
> @@ -1941,11 +1944,12 @@ static int fastrpc_req_mmap(struct fastrpc_user *fl, 
> char __user *argp)
>       if (req.flags == ADSP_MMAP_REMOTE_HEAP_ADDR && fl->cctx->vmcount) {
>               u64 src_perms = BIT(QCOM_SCM_VMID_HLOS);
>  
> -             err = qcom_scm_assign_mem(buf->phys, (u64)buf->size,
> +             err = qcom_scm_assign_mem(buf->dma_addr, (u64)buf->size,
>                       &src_perms, fl->cctx->vmperms, fl->cctx->vmcount);
>               if (err) {
> -                     dev_err(fl->sctx->dev, "Failed to assign memory phys 
> 0x%llx size 0x%llx err %d",
> -                                     buf->phys, buf->size, err);
> +                     dev_err(fl->sctx->dev,
> +                             "Failed to assign memory dma_addr 0x%llx size 
> 0x%llx err %d",
> +                             buf->dma_addr, buf->size, err);
>                       goto err_assign;
>               }
>       }
> @@ -2059,7 +2063,7 @@ static int fastrpc_req_mem_map(struct fastrpc_user *fl, 
> char __user *argp)
>       args[0].ptr = (u64) (uintptr_t) &req_msg;
>       args[0].length = sizeof(req_msg);
>  
> -     pages.addr = map->phys;
> +     pages.addr = map->dma_addr;
>       pages.size = map->len;
>  
>       args[1].ptr = (u64) (uintptr_t) &pages;
> -- 
> 2.34.1
> 

-- 
With best wishes
Dmitry

Reply via email to