drm/amdkfd: Copy wave state only for compute queue
authorPhilip Yang <Philip.Yang@amd.com>
Thu, 3 Oct 2024 15:53:51 +0000 (11:53 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 7 Oct 2024 18:09:21 +0000 (14:09 -0400)
get_wave_state is not defined for sdma queue, copy_context_work_handler
calls it for sdma queue will crash.

Signed-off-by: Philip Yang <Philip.Yang@amd.com>
Reviewed-by: Jonathan Kim <jonathan.kim@amd.com>
Tested-by: Jonathan Kim <jonathan.kim@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c

index 648f400..b2b16a8 100644 (file)
@@ -3173,7 +3173,7 @@ struct copy_context_work_handler_workarea {
        struct kfd_process *p;
 };
 
-static void copy_context_work_handler (struct work_struct *work)
+static void copy_context_work_handler(struct work_struct *work)
 {
        struct copy_context_work_handler_workarea *workarea;
        struct mqd_manager *mqd_mgr;
@@ -3200,6 +3200,9 @@ static void copy_context_work_handler (struct work_struct *work)
                struct qcm_process_device *qpd = &pdd->qpd;
 
                list_for_each_entry(q, &qpd->queues_list, list) {
+                       if (q->properties.type != KFD_QUEUE_TYPE_COMPUTE)
+                               continue;
+
                        mqd_mgr = dqm->mqd_mgrs[KFD_MQD_TYPE_CP];
 
                        /* We ignore the return value from get_wave_state