[PATCH v3] drm/amdkfd: Uninitialized and Unused variables

Andrew Martin Andrew.Martin at amd.com
Wed Jan 8 18:14:35 UTC 2025


This patch initialized key variables and removed unused ones.

Signed-off-by: Andrew Martin <Andrew.Martin at amd.com>
---
 .../gpu/drm/amd/amdkfd/cik_event_interrupt.c  |  2 +-
 drivers/gpu/drm/amd/amdkfd/kfd_chardev.c      | 24 +++++------
 drivers/gpu/drm/amd/amdkfd/kfd_device.c       |  2 +-
 .../drm/amd/amdkfd/kfd_device_queue_manager.c | 42 ++++++++-----------
 .../gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c   |  8 ++--
 .../drm/amd/amdkfd/kfd_packet_manager_vi.c    |  1 -
 drivers/gpu/drm/amd/amdkfd/kfd_process.c      | 14 +++----
 .../amd/amdkfd/kfd_process_queue_manager.c    |  6 +--
 8 files changed, 43 insertions(+), 56 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdkfd/cik_event_interrupt.c b/drivers/gpu/drm/amd/amdkfd/cik_event_interrupt.c
index 795382b55e0a..9767f6483871 100644
--- a/drivers/gpu/drm/amd/amdkfd/cik_event_interrupt.c
+++ b/drivers/gpu/drm/amd/amdkfd/cik_event_interrupt.c
@@ -35,7 +35,7 @@ static bool cik_event_interrupt_isr(struct kfd_node *dev,
 			(const struct cik_ih_ring_entry *)ih_ring_entry;
 	const struct kfd2kgd_calls *f2g = dev->kfd2kgd;
 	unsigned int vmid;
-	uint16_t pasid;
+	uint16_t pasid = 0;
 	bool ret;
 
 	/* This workaround is due to HW/FW limitation on Hawaii that
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
index 065d87841459..306ea5a8a747 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
@@ -923,7 +923,7 @@ static int kfd_ioctl_get_tile_config(struct file *filep,
 {
 	struct kfd_ioctl_get_tile_config_args *args = data;
 	struct kfd_process_device *pdd;
-	struct tile_config config;
+	struct tile_config config = {0};
 	int err = 0;
 
 	mutex_lock(&p->mutex);
@@ -1042,7 +1042,7 @@ static int kfd_ioctl_alloc_memory_of_gpu(struct file *filep,
 {
 	struct kfd_ioctl_alloc_memory_of_gpu_args *args = data;
 	struct kfd_process_device *pdd;
-	void *mem;
+	void *mem = NULL;
 	struct kfd_node *dev;
 	int idr_handle;
 	long err;
@@ -1496,12 +1496,12 @@ static int kfd_ioctl_get_dmabuf_info(struct file *filep,
 {
 	struct kfd_ioctl_get_dmabuf_info_args *args = data;
 	struct kfd_node *dev = NULL;
-	struct amdgpu_device *dmabuf_adev;
+	struct amdgpu_device *dmabuf_adev = NULL;
 	void *metadata_buffer = NULL;
-	uint32_t flags;
-	int8_t xcp_id;
+	uint32_t flags = 0;
+	int8_t xcp_id = 0;
 	unsigned int i;
-	int r;
+	int r = 0;
 
 	/* Find a KFD GPU device that supports the get_dmabuf_info query */
 	for (i = 0; kfd_topology_enum_kfd_devices(i, &dev) == 0; i++)
@@ -1551,7 +1551,7 @@ static int kfd_ioctl_import_dmabuf(struct file *filep,
 	struct kfd_process_device *pdd;
 	int idr_handle;
 	uint64_t size;
-	void *mem;
+	void *mem = NULL;
 	int r;
 
 	mutex_lock(&p->mutex);
@@ -1837,10 +1837,8 @@ static int criu_get_prime_handle(struct kgd_mem *mem,
 				 int flags, u32 *shared_fd,
 				 struct file **file)
 {
-	struct dma_buf *dmabuf;
-	int ret;
-
-	ret = amdgpu_amdkfd_gpuvm_export_dmabuf(mem, &dmabuf);
+	struct dma_buf *dmabuf = NULL;
+	int ret = amdgpu_amdkfd_gpuvm_export_dmabuf(mem, &dmabuf);
 	if (ret) {
 		pr_err("dmabuf export failed for the BO\n");
 		return ret;
@@ -2291,7 +2289,7 @@ static int criu_restore_memory_of_gpu(struct kfd_process_device *pdd,
 	int idr_handle;
 	int ret;
 	const bool criu_resume = true;
-	u64 offset;
+	u64 offset = 0;
 
 	if (bo_bucket->alloc_flags & KFD_IOC_ALLOC_MEM_FLAGS_DOORBELL) {
 		if (bo_bucket->size !=
@@ -2358,7 +2356,7 @@ static int criu_restore_bo(struct kfd_process *p,
 			   struct file **file)
 {
 	struct kfd_process_device *pdd;
-	struct kgd_mem *kgd_mem;
+	struct kgd_mem *kgd_mem = NULL;
 	int ret;
 	int j;
 
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device.c b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
index a29374c86405..5af5b9baa894 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_device.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
@@ -1038,7 +1038,7 @@ void kgd2kfd_suspend(struct kfd_dev *kfd, bool run_pm)
 
 int kgd2kfd_resume(struct kfd_dev *kfd, bool run_pm)
 {
-	int ret, i;
+	int ret = 0, i;
 
 	if (!kfd->init_complete)
 		return 0;
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 1405e8affd48..d4a346ac1167 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
@@ -199,7 +199,7 @@ static int add_queue_mes(struct device_queue_manager *dqm, struct queue *q,
 	struct amdgpu_device *adev = (struct amdgpu_device *)dqm->dev->adev;
 	struct kfd_process_device *pdd = qpd_to_pdd(qpd);
 	struct mes_add_queue_input queue_input;
-	int r, queue_type;
+	int r = 0, queue_type;
 	uint64_t wptr_addr_off;
 
 	if (!dqm->sched_running || dqm->sched_halt)
@@ -284,7 +284,7 @@ static int remove_queue_mes(struct device_queue_manager *dqm, struct queue *q,
 			struct qcm_process_device *qpd)
 {
 	struct amdgpu_device *adev = (struct amdgpu_device *)dqm->dev->adev;
-	int r;
+	int r = 0;
 	struct mes_remove_queue_input queue_input;
 
 	if (!dqm->sched_running || dqm->sched_halt)
@@ -634,7 +634,7 @@ static int create_queue_nocpsch(struct device_queue_manager *dqm,
 				const void *restore_mqd, const void *restore_ctl_stack)
 {
 	struct mqd_manager *mqd_mgr;
-	int retval;
+	int retval = 0;
 
 	dqm_lock(dqm);
 
@@ -795,7 +795,7 @@ static int dbgdev_wave_reset_wavefronts(struct kfd_node *dev, struct kfd_process
 {
 	int status = 0;
 	unsigned int vmid;
-	uint16_t queried_pasid;
+	uint16_t queried_pasid = 0;
 	union SQ_CMD_BITS reg_sq_cmd;
 	union GRBM_GFX_INDEX_BITS reg_gfx_index;
 	struct kfd_process_device *pdd;
@@ -862,11 +862,9 @@ static int destroy_queue_nocpsch_locked(struct device_queue_manager *dqm,
 				struct qcm_process_device *qpd,
 				struct queue *q)
 {
-	int retval;
-	struct mqd_manager *mqd_mgr;
-
-	mqd_mgr = dqm->mqd_mgrs[get_mqd_type_from_queue_type(
-			q->properties.type)];
+	int retval = 0;
+	struct mqd_manager *mqd_mgr =
+	  dqm->mqd_mgrs[get_mqd_type_from_queue_type(q->properties.type)];
 
 	if (q->properties.type == KFD_QUEUE_TYPE_COMPUTE)
 		deallocate_hqd(dqm, q);
@@ -921,7 +919,7 @@ static int destroy_queue_nocpsch(struct device_queue_manager *dqm,
 				struct qcm_process_device *qpd,
 				struct queue *q)
 {
-	int retval;
+	int retval = 0;
 	uint64_t sdma_val = 0;
 	struct device *dev = dqm->dev->adev->dev;
 	struct kfd_process_device *pdd = qpd_to_pdd(qpd);
@@ -1150,7 +1148,7 @@ static int evict_process_queues_nocpsch(struct device_queue_manager *dqm,
 	struct queue *q;
 	struct mqd_manager *mqd_mgr;
 	struct kfd_process_device *pdd;
-	int retval, ret = 0;
+	int retval = 0, ret = 0;
 
 	dqm_lock(dqm);
 	if (qpd->evicted++ > 0) /* already evicted, do nothing */
@@ -1260,7 +1258,7 @@ static int restore_process_queues_nocpsch(struct device_queue_manager *dqm,
 	struct kfd_process_device *pdd;
 	uint64_t pd_base;
 	uint64_t eviction_duration;
-	int retval, ret = 0;
+	int retval = 0, ret = 0;
 
 	pdd = qpd_to_pdd(qpd);
 	/* Retrieve PD base */
@@ -1437,13 +1435,12 @@ static int register_process(struct device_queue_manager *dqm,
 static int unregister_process(struct device_queue_manager *dqm,
 					struct qcm_process_device *qpd)
 {
-	int retval;
+	int retval = 0;
 	struct device_process_node *cur, *next;
 
 	pr_debug("qpd->queues_list is %s\n",
 			list_empty(&qpd->queues_list) ? "empty" : "not empty");
 
-	retval = 0;
 	dqm_lock(dqm);
 
 	list_for_each_entry_safe(cur, next, &dqm->queues, list) {
@@ -1473,7 +1470,7 @@ set_pasid_vmid_mapping(struct device_queue_manager *dqm, u32 pasid,
 			unsigned int vmid)
 {
 	uint32_t xcc_mask = dqm->dev->xcc_mask;
-	int xcc_id, ret;
+	int xcc_id, ret = 0;
 
 	for_each_inst(xcc_id, xcc_mask) {
 		ret = dqm->dev->kfd2kgd->set_pasid_vmid_mapping(
@@ -1827,8 +1824,6 @@ static int start_cpsch(struct device_queue_manager *dqm)
 	struct device *dev = dqm->dev->adev->dev;
 	int retval, num_hw_queue_slots;
 
-	retval = 0;
-
 	dqm_lock(dqm);
 
 	if (!dqm->dev->kfd->shared_resources.enable_mes) {
@@ -1988,7 +1983,7 @@ static int create_queue_cpsch(struct device_queue_manager *dqm, struct queue *q,
 			const struct kfd_criu_queue_priv_data *qd,
 			const void *restore_mqd, const void *restore_ctl_stack)
 {
-	int retval;
+	int retval = 0;
 	struct mqd_manager *mqd_mgr;
 
 	if (dqm->total_queue_count >= max_num_of_queues_per_device) {
@@ -2282,8 +2277,8 @@ static int unmap_queues_cpsch(struct device_queue_manager *dqm,
 				bool reset)
 {
 	struct device *dev = dqm->dev->adev->dev;
-	struct mqd_manager *mqd_mgr;
-	int retval;
+	struct mqd_manager *mqd_mgr = NULL;
+	int retval = 0;
 
 	if (!dqm->sched_running)
 		return 0;
@@ -2705,7 +2700,7 @@ static int checkpoint_mqd(struct device_queue_manager *dqm,
 static int process_termination_cpsch(struct device_queue_manager *dqm,
 		struct qcm_process_device *qpd)
 {
-	int retval;
+	int retval = 0;
 	struct queue *q;
 	struct device *dev = dqm->dev->adev->dev;
 	struct kernel_queue *kq, *kq_next;
@@ -2715,8 +2710,6 @@ static int process_termination_cpsch(struct device_queue_manager *dqm,
 		KFD_UNMAP_QUEUES_FILTER_DYNAMIC_QUEUES;
 	bool found = false;
 
-	retval = 0;
-
 	dqm_lock(dqm);
 
 	/* Clean all kernel queues */
@@ -3439,7 +3432,6 @@ int suspend_queues(struct kfd_process *p,
 					else
 						per_device_suspended++;
 				} else if (err != -EBUSY) {
-					r = err;
 					queue_ids[q_idx] |= KFD_DBG_QUEUE_ERROR_MASK;
 					break;
 				}
@@ -3647,7 +3639,7 @@ int dqm_debugfs_hqds(struct seq_file *m, void *data)
 {
 	struct device_queue_manager *dqm = data;
 	uint32_t xcc_mask = dqm->dev->xcc_mask;
-	uint32_t (*dump)[2], n_regs;
+	uint32_t (*dump)[2] = {}, n_regs = 0;
 	int pipe, queue;
 	int r = 0, xcc_id;
 	uint32_t sdma_engine_start;
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c
index ff417d5361c4..55fc98358999 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c
@@ -571,7 +571,7 @@ static int hiq_load_mqd_kiq_v9_4_3(struct mqd_manager *mm, void *mqd,
 			struct queue_properties *p, struct mm_struct *mms)
 {
 	uint32_t xcc_mask = mm->dev->xcc_mask;
-	int xcc_id, err, inst = 0;
+	int xcc_id, err = 0, inst = 0;
 	void *xcc_mqd;
 	uint64_t hiq_mqd_size = kfd_hiq_mqd_stride(mm->dev);
 
@@ -595,7 +595,7 @@ static int destroy_hiq_mqd_v9_4_3(struct mqd_manager *mm, void *mqd,
 			uint32_t pipe_id, uint32_t queue_id)
 {
 	uint32_t xcc_mask = mm->dev->xcc_mask;
-	int xcc_id, err, inst = 0;
+	int xcc_id, err = 0, inst = 0;
 	uint64_t hiq_mqd_size = kfd_hiq_mqd_stride(mm->dev);
 	struct v9_mqd *m;
 	u32 doorbell_off;
@@ -751,7 +751,7 @@ static int destroy_mqd_v9_4_3(struct mqd_manager *mm, void *mqd,
 		   uint32_t pipe_id, uint32_t queue_id)
 {
 	uint32_t xcc_mask = mm->dev->xcc_mask;
-	int xcc_id, err, inst = 0;
+	int xcc_id, err = 0, inst = 0;
 	void *xcc_mqd;
 	struct v9_mqd *m;
 	uint64_t mqd_offset;
@@ -781,7 +781,7 @@ static int load_mqd_v9_4_3(struct mqd_manager *mm, void *mqd,
 	/* AQL write pointer counts in 64B packets, PM4/CP counts in dwords. */
 	uint32_t wptr_shift = (p->format == KFD_QUEUE_FORMAT_AQL ? 4 : 0);
 	uint32_t xcc_mask = mm->dev->xcc_mask;
-	int xcc_id, err, inst = 0;
+	int xcc_id, err = 0, inst = 0;
 	void *xcc_mqd;
 	uint64_t mqd_stride_size = mm->mqd_stride(mm, p);
 
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager_vi.c b/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager_vi.c
index c1199d06d131..cf803aed5069 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager_vi.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_packet_manager_vi.c
@@ -173,7 +173,6 @@ static int pm_map_queues_vi(struct packet_manager *pm, uint32_t *buffer,
 	case KFD_QUEUE_TYPE_SDMA_XGMI:
 		packet->bitfields2.engine_sel = q->properties.sdma_engine_id +
 				engine_sel__mes_map_queues__sdma0_vi;
-		use_static = false; /* no static queues under SDMA */
 		break;
 	default:
 		WARN(1, "queue type %d", q->properties.type);
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process.c b/drivers/gpu/drm/amd/amdkfd/kfd_process.c
index 083f83c94531..a6188c06c7a1 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_process.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_process.c
@@ -272,7 +272,7 @@ static int kfd_get_cu_occupancy(struct attribute *attr, char *buffer)
 	struct kfd_process_device *pdd = NULL;
 	int i;
 	struct kfd_cu_occupancy *cu_occupancy;
-	u32 queue_format;
+	u32 queue_format = 0;
 
 	pdd = container_of(attr, struct kfd_process_device, attr_cu_occupancy);
 	dev = pdd->dev;
@@ -743,9 +743,7 @@ static int kfd_process_alloc_gpuvm(struct kfd_process_device *pdd,
 				   uint32_t flags, struct kgd_mem **mem, void **kptr)
 {
 	struct kfd_node *kdev = pdd->dev;
-	int err;
-
-	err = amdgpu_amdkfd_gpuvm_alloc_memory_of_gpu(kdev->adev, gpu_va, size,
+	int err = amdgpu_amdkfd_gpuvm_alloc_memory_of_gpu(kdev->adev, gpu_va, size,
 						 pdd->drm_priv, mem, NULL,
 						 flags, false);
 	if (err)
@@ -798,8 +796,8 @@ static int kfd_process_device_reserve_ib_mem(struct kfd_process_device *pdd)
 			KFD_IOC_ALLOC_MEM_FLAGS_NO_SUBSTITUTE |
 			KFD_IOC_ALLOC_MEM_FLAGS_WRITABLE |
 			KFD_IOC_ALLOC_MEM_FLAGS_EXECUTABLE;
-	struct kgd_mem *mem;
-	void *kaddr;
+	struct kgd_mem *mem = NULL;
+	void *kaddr = NULL;
 	int ret;
 
 	if (qpd->ib_kaddr || !qpd->ib_base)
@@ -1369,8 +1367,8 @@ static int kfd_process_device_init_cwsr_dgpu(struct kfd_process_device *pdd)
 	uint32_t flags = KFD_IOC_ALLOC_MEM_FLAGS_GTT
 			| KFD_IOC_ALLOC_MEM_FLAGS_NO_SUBSTITUTE
 			| KFD_IOC_ALLOC_MEM_FLAGS_EXECUTABLE;
-	struct kgd_mem *mem;
-	void *kaddr;
+	struct kgd_mem *mem = NULL;
+	void *kaddr = NULL;
 	int ret;
 
 	if (!dev->kfd->cwsr_enabled || qpd->cwsr_kaddr || !qpd->cwsr_base)
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
index 9df56f8e09f9..06fbb107f303 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
@@ -769,7 +769,7 @@ int kfd_process_get_queue_info(struct kfd_process *p,
 			if (q->properties.type == KFD_QUEUE_TYPE_COMPUTE ||
 				q->properties.type == KFD_QUEUE_TYPE_SDMA ||
 				q->properties.type == KFD_QUEUE_TYPE_SDMA_XGMI) {
-				uint32_t mqd_size, ctl_stack_size;
+				uint32_t mqd_size = 0, ctl_stack_size = 0;
 
 				*num_queues = *num_queues + 1;
 
@@ -872,8 +872,8 @@ static int criu_checkpoint_queues_device(struct kfd_process_device *pdd,
 	list_for_each_entry(q, &pdd->qpd.queues_list, list) {
 		struct kfd_criu_queue_priv_data *q_data;
 		uint64_t q_data_size;
-		uint32_t mqd_size;
-		uint32_t ctl_stack_size;
+		uint32_t mqd_size = 0;
+		uint32_t ctl_stack_size = 0;
 
 		if (q->properties.type != KFD_QUEUE_TYPE_COMPUTE &&
 			q->properties.type != KFD_QUEUE_TYPE_SDMA &&
-- 
2.43.0



More information about the amd-gfx mailing list