mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-10 14:43:54 +08:00
drm/amdkfd: Fix dqm->queue_count tracking
dqm->queue_count tracks queues in the active state only. In a few places this count is modified unconditionally, leading to an incorrect value when the UPDATE_QUEUE ioctl is used to make a queue inactive. Signed-off-by: Jay Cornwall <jay.cornwall@amd.com> Reviewed-by: Ben Goz <ben.goz@amd.com> Signed-off-by: Oded Gabbay <oded.gabbay@amd.com>
This commit is contained in:
parent
e4bf44b3b5
commit
b6819cec29
@ -167,7 +167,8 @@ static int create_queue_nocpsch(struct device_queue_manager *dqm,
|
||||
}
|
||||
|
||||
list_add(&q->list, &qpd->queues_list);
|
||||
dqm->queue_count++;
|
||||
if (q->properties.is_active)
|
||||
dqm->queue_count++;
|
||||
|
||||
if (q->properties.type == KFD_QUEUE_TYPE_SDMA)
|
||||
dqm->sdma_queue_count++;
|
||||
@ -313,7 +314,8 @@ static int destroy_queue_nocpsch(struct device_queue_manager *dqm,
|
||||
list_del(&q->list);
|
||||
if (list_empty(&qpd->queues_list))
|
||||
deallocate_vmid(dqm, qpd, q);
|
||||
dqm->queue_count--;
|
||||
if (q->properties.is_active)
|
||||
dqm->queue_count--;
|
||||
|
||||
/*
|
||||
* Unconditionally decrement this counter, regardless of the queue's
|
||||
@ -1018,7 +1020,8 @@ static int destroy_queue_cpsch(struct device_queue_manager *dqm,
|
||||
dqm->sdma_queue_count--;
|
||||
|
||||
list_del(&q->list);
|
||||
dqm->queue_count--;
|
||||
if (q->properties.is_active)
|
||||
dqm->queue_count--;
|
||||
|
||||
execute_queues_cpsch(dqm, false);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user