drm/etnaviv: assert GPU lock held in perfmon pipe_*_read functions
The perf counter read functions don't just read registers, but they also mutate state to direct the reads towards the correct pipe and engine. Assert that the GPU mutex is held at this point, so that those state changes don't interfere with others. Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com> Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
This commit is contained in:
@@ -62,6 +62,8 @@ static u32 pipe_perf_reg_read(struct etnaviv_gpu *gpu,
|
||||
u32 value = 0;
|
||||
unsigned i;
|
||||
|
||||
lockdep_assert_held(&gpu->lock);
|
||||
|
||||
for (i = 0; i < gpu->identity.pixel_pipes; i++) {
|
||||
pipe_select(gpu, clock, i);
|
||||
value += perf_reg_read(gpu, domain, signal);
|
||||
@@ -81,6 +83,8 @@ static u32 pipe_reg_read(struct etnaviv_gpu *gpu,
|
||||
u32 value = 0;
|
||||
unsigned i;
|
||||
|
||||
lockdep_assert_held(&gpu->lock);
|
||||
|
||||
for (i = 0; i < gpu->identity.pixel_pipes; i++) {
|
||||
pipe_select(gpu, clock, i);
|
||||
value += gpu_read(gpu, signal->data);
|
||||
|
||||
Reference in New Issue
Block a user