From 758cc8b5348ca5eed1929be4cb71b94c76a84a53 Mon Sep 17 00:00:00 2001 From: Akshay Pandit Date: Wed, 2 Dec 2020 20:58:23 +0530 Subject: [PATCH] msm: ipa: Use read memory barrier before reading events Use read memory barrier before reading event from event ring. Since ring is shared resource between IPA h/w and IPA driver dma_rmb is used to ensure memory write is complete before reading from driver. Change-Id: I295a701b16362f26d47d4efe5a54364a7ee4d5a6 Signed-off-by: Akshay Pandit --- drivers/platform/msm/gsi/gsi.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/platform/msm/gsi/gsi.c b/drivers/platform/msm/gsi/gsi.c index 74075038f708..d831379ea229 100644 --- a/drivers/platform/msm/gsi/gsi.c +++ b/drivers/platform/msm/gsi/gsi.c @@ -595,6 +595,11 @@ static void gsi_process_evt_re(struct gsi_evt_ctx *ctx, struct gsi_xfer_compl_evt *evt; struct gsi_chan_ctx *ch_ctx; + /* RMB before reading event ring shared b/w IPA h/w & driver + * ordering between IPA h/w store and CPU load + */ + if (callback) + dma_rmb(); evt = (struct gsi_xfer_compl_evt *)(ctx->ring.base_va + ctx->ring.rp_local - ctx->ring.base); gsi_process_chan(evt, notify, callback);