Commit 4064c461 authored by Jens Wiklander's avatar Jens Wiklander
Browse files

optee: add error checks in optee_ffa_do_call_with_arg()



Adds error checking in optee_ffa_do_call_with_arg() for correctness.

Fixes: 4615e5a3 ("optee: add FF-A support")
Reviewed-by: default avatarSumit Garg <sumit.garg@linaro.org>
Signed-off-by: default avatarJens Wiklander <jens.wiklander@linaro.org>
parent abc8dc34
Loading
Loading
Loading
Loading
+12 −3
Original line number Diff line number Diff line
@@ -619,9 +619,18 @@ static int optee_ffa_do_call_with_arg(struct tee_context *ctx,
		.data2 = (u32)(shm->sec_world_id >> 32),
		.data3 = shm->offset,
	};
	struct optee_msg_arg *arg = tee_shm_get_va(shm, 0);
	unsigned int rpc_arg_offs = OPTEE_MSG_GET_ARG_SIZE(arg->num_params);
	struct optee_msg_arg *rpc_arg = tee_shm_get_va(shm, rpc_arg_offs);
	struct optee_msg_arg *arg;
	unsigned int rpc_arg_offs;
	struct optee_msg_arg *rpc_arg;

	arg = tee_shm_get_va(shm, 0);
	if (IS_ERR(arg))
		return PTR_ERR(arg);

	rpc_arg_offs = OPTEE_MSG_GET_ARG_SIZE(arg->num_params);
	rpc_arg = tee_shm_get_va(shm, rpc_arg_offs);
	if (IS_ERR(rpc_arg))
		return PTR_ERR(rpc_arg);

	return optee_ffa_yielding_call(ctx, &data, rpc_arg);
}