OSDN Git Service

drm/i915: Catch yet another unconditioal clflush
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 14 Oct 2021 09:09:40 +0000 (12:09 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Mon, 18 Oct 2021 09:45:19 +0000 (12:45 +0300)
Replace the unconditional clflush() with drm_clflush_virt_range()
which does the wbinvd() fallback when clflush is not available.

This time no justification is given for the clflush in the
offending commit.

Cc: stable@vger.kernel.org
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Fixes: 2c8ab3339e39 ("drm/i915: Pin timeline map after first timeline pin, v4.")
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211014090941.12159-4-ville.syrjala@linux.intel.com
Reviewed-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/i915/gt/intel_timeline.c

index 23d7328..438bbc7 100644 (file)
@@ -64,7 +64,7 @@ intel_timeline_pin_map(struct intel_timeline *timeline)
 
        timeline->hwsp_map = vaddr;
        timeline->hwsp_seqno = memset(vaddr + ofs, 0, TIMELINE_SEQNO_BYTES);
-       clflush(vaddr + ofs);
+       drm_clflush_virt_range(vaddr + ofs, TIMELINE_SEQNO_BYTES);
 
        return 0;
 }