On Thu, Feb 10, 2022 at 10:36:35AM -0800, Michael Cheng wrote: > Use drm_clflush_virt_range instead of clflushopt and remove the memory > barrier, since drm_clflush_virt_range takes care of that. > > Signed-off-by: Michael Cheng <michael.cheng@xxxxxxxxx> > --- > drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 8 +++----- > 1 file changed, 3 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c > index 498b458fd784..0854276ff7ba 100644 > --- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c > +++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c > @@ -1332,10 +1332,8 @@ static void *reloc_vaddr(struct i915_vma *vma, > static void clflush_write32(u32 *addr, u32 value, unsigned int flushes) > { > if (unlikely(flushes & (CLFLUSH_BEFORE | CLFLUSH_AFTER))) { > - if (flushes & CLFLUSH_BEFORE) { > - clflushopt(addr); > - mb(); > - } > + if (flushes & CLFLUSH_BEFORE) > + drm_clflush_virt_range(addr, sizeof(addr)); This is another case where it should technically be sizeof(*addr), although in practice it won't change the behavior. > > *addr = value; > > @@ -1347,7 +1345,7 @@ static void clflush_write32(u32 *addr, u32 value, unsigned int flushes) > * to ensure ordering of clflush wrt to the system. > */ > if (flushes & CLFLUSH_AFTER) > - clflushopt(addr); > + drm_clflush_virt_range(addr, sizeof(addr)); Ditto. Aside from those, Reviewed-by: Matt Roper <matthew.d.roper@xxxxxxxxx> > } else > *addr = value; > } > -- > 2.25.1 > -- Matt Roper Graphics Software Engineer VTT-OSGC Platform Enablement Intel Corporation (916) 356-2795