msm: gsi: Fix the incorrect evt ring pointer
The pointer should be event ring pointer, not transfer ring pointer, it has chance to get wrong upper 32 bits when smmu is disabled. Signed-off-by: Cheng Zeng <quic_chenzeng@quicinc.com> Change-Id: I8aa0d102d81fb2632ce988fcc8d816e7fed7b5b1
This commit is contained in:
@@ -4382,7 +4382,7 @@ int gsi_poll_n_channel(unsigned long chan_hdl,
|
||||
/* update rp to see of we have anything new to process */
|
||||
rp = ctx->evtr->props.gsi_read_event_ring_rp(
|
||||
&ctx->evtr->props, ctx->evtr->id, ee);
|
||||
rp |= ctx->ring.rp & GSI_MSB_MASK;
|
||||
rp |= ctx->evtr->ring.rp & GSI_MSB_MASK;
|
||||
|
||||
ctx->evtr->ring.rp = rp;
|
||||
/* read gsi event ring rp again if last read is empty */
|
||||
@@ -4401,7 +4401,7 @@ int gsi_poll_n_channel(unsigned long chan_hdl,
|
||||
__iowmb();
|
||||
rp = ctx->evtr->props.gsi_read_event_ring_rp(
|
||||
&ctx->evtr->props, ctx->evtr->id, ee);
|
||||
rp |= ctx->ring.rp & GSI_MSB_MASK;
|
||||
rp |= ctx->evtr->ring.rp & GSI_MSB_MASK;
|
||||
ctx->evtr->ring.rp = rp;
|
||||
if (rp == ctx->evtr->ring.rp_local) {
|
||||
spin_unlock_irqrestore(
|
||||
|
Reference in New Issue
Block a user