瀏覽代碼

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 <[email protected]>

Change-Id: I8aa0d102d81fb2632ce988fcc8d816e7fed7b5b1
Cheng Zeng 3 年之前
父節點
當前提交
d382527383
共有 1 個文件被更改,包括 2 次插入2 次删除
  1. 2 2
      drivers/platform/msm/gsi/gsi.c

+ 2 - 2
drivers/platform/msm/gsi/gsi.c

@@ -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(