qseecom: Invalidate listener buffer cache when get listener request
Invalidate listener buffer cache when getting listener request
from TZ, so HLOS listener thread can read data correctly.
Change-Id: Ie2ddbb1534d7cbd2d9cef949c3819e353eefd892
Signed-off-by: Zhen Kong <zkong@codeaurora.org>
Signed-off-by: AnilKumar Chimata <anilc@codeaurora.org>
diff --git a/drivers/misc/qseecom.c b/drivers/misc/qseecom.c
index 67d8e33..e238cb4 100644
--- a/drivers/misc/qseecom.c
+++ b/drivers/misc/qseecom.c
@@ -1814,6 +1814,16 @@
if (ptr_svc->svc.listener_id == lstnr) {
ptr_svc->listener_in_use = true;
ptr_svc->rcv_req_flag = 1;
+ rc = msm_ion_do_cache_op(qseecom.ion_clnt,
+ ptr_svc->ihandle,
+ ptr_svc->sb_virt,
+ ptr_svc->sb_length,
+ ION_IOC_INV_CACHES);
+ if (rc) {
+ pr_err("cache opp failed %d\n", rc);
+ status = QSEOS_RESULT_FAILURE;
+ goto err_resp;
+ }
wake_up_interruptible(&ptr_svc->rcv_req_wq);
break;
}
@@ -2142,6 +2152,16 @@
if (ptr_svc->svc.listener_id == lstnr) {
ptr_svc->listener_in_use = true;
ptr_svc->rcv_req_flag = 1;
+ rc = msm_ion_do_cache_op(qseecom.ion_clnt,
+ ptr_svc->ihandle,
+ ptr_svc->sb_virt,
+ ptr_svc->sb_length,
+ ION_IOC_INV_CACHES);
+ if (rc) {
+ pr_err("cache opp failed %d\n", rc);
+ status = QSEOS_RESULT_FAILURE;
+ goto err_resp;
+ }
wake_up_interruptible(&ptr_svc->rcv_req_wq);
break;
}