[AMD Official Use Only - General] Reviewed-by: Le Ma <[email protected]>
> -----Original Message----- > From: SHANMUGAM, SRINIVASAN <[email protected]> > Sent: Friday, August 4, 2023 1:47 PM > To: Koenig, Christian <[email protected]>; Deucher, Alexander > <[email protected]>; Chen, Guchun <[email protected]>; > Pan, Xinhui <[email protected]> > Cc: [email protected]; SHANMUGAM, SRINIVASAN > <[email protected]>; Ma, Le <[email protected]>; Zhang, > Hawking <[email protected]> > Subject: [PATCH] drm/amdgpu: Use READ_ONCE() when reading the values in > 'sdma_v4_4_2_ring_get_rptr' > > Instead of declaring pointers use READ_ONCE(), when accessing those values to > make sure that the compiler doesn't voilate any cache coherences > > Cc: Guchun Chen <[email protected]> > Cc: Christian König <[email protected]> > Cc: Alex Deucher <[email protected]> > Cc: "Pan, Xinhui" <[email protected]> > Cc: Le Ma <[email protected]> > Cc: Hawking Zhang <[email protected]> > Signed-off-by: Srinivasan Shanmugam <[email protected]> > --- > drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c > b/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c > index f413898dda37..267c1b7b8dcd 100644 > --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c > +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c > @@ -154,13 +154,13 @@ static int sdma_v4_4_2_init_microcode(struct > amdgpu_device *adev) > */ > static uint64_t sdma_v4_4_2_ring_get_rptr(struct amdgpu_ring *ring) { > - u64 *rptr; > + u64 rptr; > > /* XXX check if swapping is necessary on BE */ > - rptr = ((u64 *)&ring->adev->wb.wb[ring->rptr_offs]); > + rptr = READ_ONCE(*((u64 *)&ring->adev->wb.wb[ring->rptr_offs])); > > - DRM_DEBUG("rptr before shift == 0x%016llx\n", *rptr); > - return ((*rptr) >> 2); > + DRM_DEBUG("rptr before shift == 0x%016llx\n", rptr); > + return rptr >> 2; > } > > /** > -- > 2.25.1
