On 20/03/2017 14:56, Chris Wilson wrote:
As intel_engine_init_global_seqno() may be called by
nop_submit_request() from inside irq context, we have to use atomic
versions of kmap/kunmap. This is rare as this requires using gen8 legacy
ringbuffer submission.

Reported-by: Tvrtko Ursulin <[email protected]>
Signed-off-by: Chris Wilson <[email protected]>
Cc: Tvrtko Ursulin <[email protected]>
Cc: Mika Kuoppala <[email protected]>
---
 drivers/gpu/drm/i915/intel_engine_cs.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c 
b/drivers/gpu/drm/i915/intel_engine_cs.c
index 4200faa520c7..ef3c62000697 100644
--- a/drivers/gpu/drm/i915/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/intel_engine_cs.c
@@ -242,12 +242,12 @@ void intel_engine_init_global_seqno(struct 
intel_engine_cs *engine, u32 seqno)
                void *semaphores;

                /* Semaphores are in noncoherent memory, flush to be safe */
-               semaphores = kmap(page);
+               semaphores = kmap_atomic(page);
                memset(semaphores + GEN8_SEMAPHORE_OFFSET(engine->id, 0),
                       0, I915_NUM_ENGINES * gen8_semaphore_seqno_size);
                drm_clflush_virt_range(semaphores + 
GEN8_SEMAPHORE_OFFSET(engine->id, 0),
                                       I915_NUM_ENGINES * 
gen8_semaphore_seqno_size);
-               kunmap(page);
+               kunmap_atomic(semaphores);
        }

        intel_write_status_page(engine, I915_GEM_HWS_INDEX, seqno);


Reviewed-by: Tvrtko Ursulin <[email protected]>

Regards,

Tvrtko
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to