Skip to content

Commit

Permalink
drm/i915: Replace manual barrier() with READ_ONCE() in HWS accessor
Browse files Browse the repository at this point in the history
When reading from the HWS page, we use barrier() to prevent the compiler
optimising away the read from the volatile (may be updated by the GPU)
memory address. This is more suited to READ_ONCE(); make it so.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1460195877-20520-5-git-send-email-chris@chris-wilson.co.uk
  • Loading branch information
Chris Wilson committed Apr 9, 2016
1 parent 0d317ce commit 5dd8e50
Showing 1 changed file with 2 additions and 4 deletions.
6 changes: 2 additions & 4 deletions drivers/gpu/drm/i915/intel_ringbuffer.h
Original file line number Diff line number Diff line change
Expand Up @@ -391,12 +391,10 @@ intel_flush_status_page(struct intel_engine_cs *engine, int reg)
}

static inline u32
intel_read_status_page(struct intel_engine_cs *engine,
int reg)
intel_read_status_page(struct intel_engine_cs *engine, int reg)
{
/* Ensure that the compiler doesn't optimize away the load. */
barrier();
return engine->status_page.page_addr[reg];
return READ_ONCE(engine->status_page.page_addr[reg]);
}

static inline void
Expand Down

0 comments on commit 5dd8e50

Please sign in to comment.