misc: fastrpc: Add helper function to get list and page
authorVamsi Krishna Gattupalli <quic_vgattupa@quicinc.com>
Mon, 14 Feb 2022 16:09:59 +0000 (16:09 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 18 Mar 2022 13:11:00 +0000 (14:11 +0100)
Add helper functions to get invoke buffer and page start pointers.

Signed-off-by: Vamsi Krishna Gattupalli <quic_vgattupa@quicinc.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20220214161002.6831-10-srinivas.kandagatla@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/fastrpc.c

index ae7586d..2cf6286 100644 (file)
@@ -833,6 +833,16 @@ static int fastrpc_create_maps(struct fastrpc_invoke_ctx *ctx)
        return 0;
 }
 
+static struct fastrpc_invoke_buf *fastrpc_invoke_buf_start(union fastrpc_remote_arg *pra, int len)
+{
+       return (struct fastrpc_invoke_buf *)(&pra[len]);
+}
+
+static struct fastrpc_phy_page *fastrpc_phy_page_start(struct fastrpc_invoke_buf *buf, int len)
+{
+       return (struct fastrpc_phy_page *)(&buf[len]);
+}
+
 static int fastrpc_get_args(u32 kernel, struct fastrpc_invoke_ctx *ctx)
 {
        struct device *dev = ctx->fl->sctx->dev;
@@ -860,9 +870,8 @@ static int fastrpc_get_args(u32 kernel, struct fastrpc_invoke_ctx *ctx)
                return err;
 
        rpra = ctx->buf->virt;
-       list = ctx->buf->virt + ctx->nscalars * sizeof(*rpra);
-       pages = ctx->buf->virt + ctx->nscalars * (sizeof(*list) +
-               sizeof(*rpra));
+       list = fastrpc_invoke_buf_start(rpra, ctx->nscalars);
+       pages = fastrpc_phy_page_start(list, ctx->nscalars);
        args = (uintptr_t)ctx->buf->virt + metalen;
        rlen = pkt_size - metalen;
        ctx->rpra = rpra;