diff options
author | Felix Kuehling <Felix.Kuehling@amd.com> | 2021-12-08 04:03:52 +0100 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2022-01-11 21:44:28 +0100 |
commit | 6f4cb84ae0f6d56d0b5071a0057df9c7cfb82ce1 (patch) | |
tree | 64c5237b0be1686c7a93de213b1318150dfc6a01 /drivers/gpu | |
parent | drm/amdgpu: Use correct VIEWPORT_DIMENSION for DCN2 (diff) | |
download | linux-6f4cb84ae0f6d56d0b5071a0057df9c7cfb82ce1.tar.xz linux-6f4cb84ae0f6d56d0b5071a0057df9c7cfb82ce1.zip |
drm/amdkfd: Fix DQM asserts on Hawaii
start_nocpsch would never set dqm->sched_running on Hawaii due to an
early return statement. This would trigger asserts in other functions
and end up in inconsistent states.
Bug: https://github.com/RadeonOpenCompute/ROCm/issues/1624
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
Reviewed-by: Kent Russell <kent.russell@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c index 19890e350107..4b6814949aad 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c @@ -1004,14 +1004,17 @@ static void uninitialize(struct device_queue_manager *dqm) static int start_nocpsch(struct device_queue_manager *dqm) { + int r = 0; + pr_info("SW scheduler is used"); init_interrupts(dqm); if (dqm->dev->adev->asic_type == CHIP_HAWAII) - return pm_init(&dqm->packet_mgr, dqm); - dqm->sched_running = true; + r = pm_init(&dqm->packet_mgr, dqm); + if (!r) + dqm->sched_running = true; - return 0; + return r; } static int stop_nocpsch(struct device_queue_manager *dqm) |