smcinvoke: populate result from correct returned variable

SCM driver upstream effort has broken how results from trusted side
used to be handled. Since, all 4 return variables (return, res[0-2]
are not available, use correct available variable to fill up result.

Change-Id: Iaf930bb1b70a91b34a14490ab1c2c2794c7c0a48
Signed-off-by: Dinesh K Garg <dineshg@codeaurora.org>
This commit is contained in:
Dinesh K Garg 2020-09-15 10:58:55 -07:00
commit c3b00cbb39

View file

@ -1239,6 +1239,12 @@ static int prepare_send_scm_msg(const uint8_t *in_buf, phys_addr_t in_paddr,
response_type == QSEOS_RESULT_BLOCKED_ON_LISTENER) {
ret = qseecom_process_listener_from_smcinvoke(
&req->result, &response_type, &data);
/*
* new scm APIs do not provide complete response i.e. res[0-2],
* we loose some values returned from QSEECom APIs. so we need to
* populate result from response type i.e. res[1]
*/
req->result = response_type;
if (!req->result) {
ret = marshal_out_invoke_req(in_buf,
in_buf_len, req, args_buf);