mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 10:09:10 +02:00
drm/amdkfd: fix redundant MQD iterations in GFX v12.1
The init_mqd_v12_1 function and its sub-call update_mqd_v12_1 both independently
iterate over XCC-specific MQDs. This nested iteration is redundant and can cause
MQDs in different queues to be overwritten. This patch removes the duplicate
loop logic to prevent queue corruption.
Fixes: 01bbc4a4b9 ("drm/amdkfd: Add MQD manager for GFX 12.1.0")
Signed-off-by: Alex Sierra <alex.sierra@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
e773ce17b0
commit
9315a1e2bd
|
|
@ -32,6 +32,10 @@
|
|||
#include "amdgpu_amdkfd.h"
|
||||
#include "kfd_device_queue_manager.h"
|
||||
|
||||
static void update_mqd(struct mqd_manager *mm, void *mqd,
|
||||
struct queue_properties *q,
|
||||
struct mqd_update_info *minfo);
|
||||
|
||||
static inline struct v12_1_compute_mqd *get_mqd(void *mqd)
|
||||
{
|
||||
return (struct v12_1_compute_mqd *)mqd;
|
||||
|
|
@ -215,7 +219,7 @@ static void init_mqd(struct mqd_manager *mm, void **mqd,
|
|||
*mqd = m;
|
||||
if (gart_addr)
|
||||
*gart_addr = addr;
|
||||
mm->update_mqd(mm, m, q, NULL);
|
||||
update_mqd(mm, m, q, NULL);
|
||||
}
|
||||
|
||||
static int load_mqd(struct mqd_manager *mm, void *mqd,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user