with interruptible, the push_job maybe return -ERESTARTSYS,
then result in push_job error.
E.g. bug trace:
[ 181.618860] *****amdgpu_copy_buffer:fence->seq:0x0000000048d8758b, contxt:
1207959552, ref:
683967304, r:-512
[ 181.618929] BUG: unable to handle kernel paging request at
ffffffff811aa266
[ 181.625887] IP: [<
ffffffff81548ffc>] reservation_object_add_excl_fence+0x3c/0x120
...
[ 181.859767] [<
ffffffff811aa266>] ? unmap_mapping_range+0x66/0x110
[ 181.865928] [<
ffffffffc0608ac1>] ttm_bo_move_accel_cleanup+0x41/0x3c0 [ttm]
[ 181.872971] [<
ffffffffc062d382>] amdgpu_move_blit.isra.18+0x122/0x150 [amdgpu]
[ 181.880254] [<
ffffffff811aa266>] ? unmap_mapping_range+0x66/0x110
[ 181.886420] [<
ffffffffc062d709>] amdgpu_bo_move+0xa9/0x200 [amdgpu]
[ 181.892753] [<
ffffffffc0606e8d>] ttm_bo_handle_move_mem+0x26d/0x5c0 [ttm]
Signed-off-by: Chunming Zhou <david1.zhou@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
struct amd_sched_entity *entity = sched_job->s_entity;
struct amd_sched_fence *fence = amd_sched_fence_create(
entity, sched_job->owner);
- int r;
if (!fence)
return -ENOMEM;
fence_get(&fence->base);
sched_job->s_fence = fence;
- r = wait_event_interruptible(entity->scheduler->job_scheduled,
- amd_sched_entity_in(sched_job));
+ wait_event(entity->scheduler->job_scheduled,
+ amd_sched_entity_in(sched_job));
- return r;
+ return 0;
}
/**