All of lore.kernel.org
 help / color / mirror / Atom feed
* [bug report] drm/amdkfd: Add KFD support for soc21 v3
@ 2022-05-09  9:09 Dan Carpenter
  0 siblings, 0 replies; only message in thread
From: Dan Carpenter @ 2022-05-09  9:09 UTC (permalink / raw)
  To: mukul.joshi; +Cc: amd-gfx

Hello Mukul Joshi,

The patch cc009e613de6: "drm/amdkfd: Add KFD support for soc21 v3"
from Apr 26, 2022, leads to the following Smatch static checker
warning:

	drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager.c:205 add_queue_mes()
	warn: unsigned 'queue_input.queue_type' is never less than zero.

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_device_queue_manager.c
    173 static int add_queue_mes(struct device_queue_manager *dqm, struct queue *q,
    174                          struct qcm_process_device *qpd)
    175 {
    176         struct amdgpu_device *adev = (struct amdgpu_device *)dqm->dev->adev;
    177         struct kfd_process_device *pdd = qpd_to_pdd(qpd);
    178         struct mes_add_queue_input queue_input;
    179         int r;
    180 
    181         if (dqm->is_hws_hang)
    182                 return -EIO;
    183 
    184         memset(&queue_input, 0x0, sizeof(struct mes_add_queue_input));
    185         queue_input.process_id = qpd->pqm->process->pasid;
    186         queue_input.page_table_base_addr =  qpd->page_table_base;
    187         queue_input.process_va_start = 0;
    188         queue_input.process_va_end = adev->vm_manager.max_pfn - 1;
    189         /* MES unit for quantum is 100ns */
    190         queue_input.process_quantum = KFD_MES_PROCESS_QUANTUM;  /* Equivalent to 10ms. */
    191         queue_input.process_context_addr = pdd->proc_ctx_gpu_addr;
    192         queue_input.gang_quantum = KFD_MES_GANG_QUANTUM; /* Equivalent to 1ms */
    193         queue_input.gang_context_addr = q->gang_ctx_gpu_addr;
    194         queue_input.inprocess_gang_priority = q->properties.priority;
    195         queue_input.gang_global_priority_level =
    196                                         AMDGPU_MES_PRIORITY_LEVEL_NORMAL;
    197         queue_input.doorbell_offset = q->properties.doorbell_off;
    198         queue_input.mqd_addr = q->gart_mqd_addr;
    199         queue_input.wptr_addr = (uint64_t)q->properties.write_ptr;
    200         queue_input.paging = false;
    201         queue_input.tba_addr = qpd->tba_addr;
    202         queue_input.tma_addr = qpd->tma_addr;
    203 
    204         queue_input.queue_type = convert_to_mes_queue_type(q->properties.type);
--> 205         if (queue_input.queue_type < 0) {

This is a u32 so it can't be negative.  Some convert_to_mes_queue_type()
functions return -1 and some return -EINVAL.

    206                 pr_err("Queue type not supported with MES, queue:%d\n",
    207                                 q->properties.type);
    208                 return -EINVAL;
    209         }
    210 
    211         if (q->gws) {
    212                 queue_input.gws_base = 0;
    213                 queue_input.gws_size = qpd->num_gws;
    214         }
    215 
    216         amdgpu_mes_lock(&adev->mes);
    217         r = adev->mes.funcs->add_hw_queue(&adev->mes, &queue_input);
    218         amdgpu_mes_unlock(&adev->mes);
    219         if (r) {
    220                 pr_err("failed to add hardware queue to MES, doorbell=0x%x\n",
    221                         q->properties.doorbell_off);
    222                 pr_err("MES might be in unrecoverable state, issue a GPU reset\n");
    223                 kfd_hws_hang(dqm);
    224 }

regards,
dan carpenter

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-05-09  9:09 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-05-09  9:09 [bug report] drm/amdkfd: Add KFD support for soc21 v3 Dan Carpenter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.