Browse Source

amdkfd: Fix sparse warnings in kfd_chardev.c

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Oded Gabbay <oded.gabbay@amd.com>
Oded Gabbay 10 năm trước cách đây
mục cha
commit
4307d8f6e5

+ 12 - 4
drivers/gpu/drm/amd/amdkfd/kfd_chardev.c

@@ -149,7 +149,9 @@ static int set_queue_properties_from_user(struct queue_properties *q_properties,
 	}
 	}
 
 
 	if ((args->ring_base_address) &&
 	if ((args->ring_base_address) &&
-		(!access_ok(VERIFY_WRITE, args->ring_base_address, sizeof(uint64_t)))) {
+		(!access_ok(VERIFY_WRITE,
+			(const void __user *) args->ring_base_address,
+			sizeof(uint64_t)))) {
 		pr_err("kfd: can't access ring base address\n");
 		pr_err("kfd: can't access ring base address\n");
 		return -EFAULT;
 		return -EFAULT;
 	}
 	}
@@ -159,12 +161,16 @@ static int set_queue_properties_from_user(struct queue_properties *q_properties,
 		return -EINVAL;
 		return -EINVAL;
 	}
 	}
 
 
-	if (!access_ok(VERIFY_WRITE, args->read_pointer_address, sizeof(uint32_t))) {
+	if (!access_ok(VERIFY_WRITE,
+			(const void __user *) args->read_pointer_address,
+			sizeof(uint32_t))) {
 		pr_err("kfd: can't access read pointer\n");
 		pr_err("kfd: can't access read pointer\n");
 		return -EFAULT;
 		return -EFAULT;
 	}
 	}
 
 
-	if (!access_ok(VERIFY_WRITE, args->write_pointer_address, sizeof(uint32_t))) {
+	if (!access_ok(VERIFY_WRITE,
+			(const void __user *) args->write_pointer_address,
+			sizeof(uint32_t))) {
 		pr_err("kfd: can't access write pointer\n");
 		pr_err("kfd: can't access write pointer\n");
 		return -EFAULT;
 		return -EFAULT;
 	}
 	}
@@ -325,7 +331,9 @@ static int kfd_ioctl_update_queue(struct file *filp, struct kfd_process *p,
 	}
 	}
 
 
 	if ((args.ring_base_address) &&
 	if ((args.ring_base_address) &&
-		(!access_ok(VERIFY_WRITE, args.ring_base_address, sizeof(uint64_t)))) {
+		(!access_ok(VERIFY_WRITE,
+			(const void __user *) args.ring_base_address,
+			sizeof(uint64_t)))) {
 		pr_err("kfd: can't access ring base address\n");
 		pr_err("kfd: can't access ring base address\n");
 		return -EFAULT;
 		return -EFAULT;
 	}
 	}