mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-31 14:04:27 -04:00
misc: fastrpc: Move fdlist to invoke context structure
The fdlist is currently part of the meta buffer which is set during fastrpc_get_args(), this fdlist is getting recalculated during fastrpc_put_args(). Move fdlist to the invoke context structure to improve maintainability and reduce redundancy. This centralizes its handling and simplifies meta buffer preparation and reading logic. Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com> Signed-off-by: Srinivas Kandagatla <srini@kernel.org> Link: https://patch.msgid.link/20260729094352.111065-5-srini@kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
bc53df3d17
commit
1b59271fa6
@@ -233,6 +233,7 @@ struct fastrpc_invoke_ctx {
|
||||
int pid;
|
||||
int client_id;
|
||||
u32 sc;
|
||||
u64 *fdlist;
|
||||
u32 *crc;
|
||||
u64 ctxid;
|
||||
u64 msg_sz;
|
||||
@@ -1063,6 +1064,7 @@ static int fastrpc_get_args(u32 kernel, struct fastrpc_invoke_ctx *ctx)
|
||||
rpra = ctx->buf->virt;
|
||||
list = fastrpc_invoke_buf_start(rpra, ctx->nscalars);
|
||||
pages = fastrpc_phy_page_start(list, ctx->nscalars);
|
||||
ctx->fdlist = (u64 *)(pages + ctx->nscalars);
|
||||
args = (uintptr_t)ctx->buf->virt + metalen;
|
||||
rlen = pkt_size - metalen;
|
||||
ctx->rpra = rpra;
|
||||
@@ -1165,18 +1167,11 @@ static int fastrpc_put_args(struct fastrpc_invoke_ctx *ctx,
|
||||
union fastrpc_remote_arg *rpra = ctx->rpra;
|
||||
struct fastrpc_user *fl = ctx->fl;
|
||||
struct fastrpc_map *mmap = NULL;
|
||||
struct fastrpc_invoke_buf *list;
|
||||
struct fastrpc_phy_page *pages;
|
||||
u64 *fdlist;
|
||||
int i, inbufs, outbufs, handles;
|
||||
u64 *fdlist = ctx->fdlist;
|
||||
int i, inbufs;
|
||||
int ret = 0;
|
||||
|
||||
inbufs = REMOTE_SCALARS_INBUFS(ctx->sc);
|
||||
outbufs = REMOTE_SCALARS_OUTBUFS(ctx->sc);
|
||||
handles = REMOTE_SCALARS_INHANDLES(ctx->sc) + REMOTE_SCALARS_OUTHANDLES(ctx->sc);
|
||||
list = fastrpc_invoke_buf_start(rpra, ctx->nscalars);
|
||||
pages = fastrpc_phy_page_start(list, ctx->nscalars);
|
||||
fdlist = (uint64_t *)(pages + inbufs + outbufs + handles);
|
||||
|
||||
for (i = inbufs; i < ctx->nbufs; ++i) {
|
||||
if (!ctx->maps[i]) {
|
||||
|
||||
Reference in New Issue
Block a user