Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d4caa46c authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "adsprpc: Fix glink receive function not to be called in IRQ context"

parents 4f83e9a1 32ba95de
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -240,6 +240,8 @@ struct smq_invoke_ctx {
	unsigned int *attrs;
	uint32_t *crc;
	uint64_t ctxid;
	void *handle;
	const void *ptr;
};

struct fastrpc_ctx_lst {
@@ -2044,7 +2046,8 @@ static int fastrpc_internal_invoke(struct fastrpc_file *fl, uint32_t mode,
		if (err)
			goto bail;
	}

	if (ctx->handle)
		glink_rx_done(ctx->handle, ctx->ptr, true);
	PERF(fl->profile, GET_COUNTER(perf_counter, PERF_INVARGS),
	if (!fl->sctx->smmu.coherent)
		inv_args(ctx);
@@ -2883,11 +2886,13 @@ static void fastrpc_glink_notify_rx(void *handle, const void *priv,
	if (err)
		goto bail;

	me->ctxtable[index]->handle = handle;
	me->ctxtable[index]->ptr = ptr;

	context_notify_user(me->ctxtable[index], rsp->retval);
bail:
	if (err)
		pr_err("adsprpc: invalid response or context\n");
	glink_rx_done(handle, ptr, true);
}

static void fastrpc_glink_notify_state(void *handle, const void *priv,