The radeon_info_ioctl() is obviously called from an ioctl()
entry for this device, and uses copy_{to,from)_user() on
the value_ptr variable.

This is generating sparse warnings due to use lack of __user
annotation on the value_ptr, so add this to remove the
following warnings:

drivers/gpu/drm/radeon/radeon_kms.c:262:43: warning: incorrect type in argument 
2 (different address spaces)
drivers/gpu/drm/radeon/radeon_kms.c:262:43:    expected void const [noderef] 
__user *from
drivers/gpu/drm/radeon/radeon_kms.c:262:43:    got unsigned int [usertype] 
*[assigned] value_ptr
drivers/gpu/drm/radeon/radeon_kms.c:319:43: warning: incorrect type in argument 
2 (different address spaces)
drivers/gpu/drm/radeon/radeon_kms.c:319:43:    expected void const [noderef] 
__user *from
drivers/gpu/drm/radeon/radeon_kms.c:319:43:    got unsigned int [usertype] 
*[assigned] value_ptr
drivers/gpu/drm/radeon/radeon_kms.c:331:43: warning: incorrect type in argument 
2 (different address spaces)
drivers/gpu/drm/radeon/radeon_kms.c:331:43:    expected void const [noderef] 
__user *from
drivers/gpu/drm/radeon/radeon_kms.c:331:43:    got unsigned int [usertype] 
*[assigned] value_ptr
drivers/gpu/drm/radeon/radeon_kms.c:467:43: warning: incorrect type in argument 
2 (different address spaces)
drivers/gpu/drm/radeon/radeon_kms.c:467:43:    expected void const [noderef] 
__user *from
drivers/gpu/drm/radeon/radeon_kms.c:467:43:    got unsigned int [usertype] 
*[assigned] value_ptr
drivers/gpu/drm/radeon/radeon_kms.c:592:43: warning: incorrect type in argument 
2 (different address spaces)
drivers/gpu/drm/radeon/radeon_kms.c:592:43:    expected void const [noderef] 
__user *from
drivers/gpu/drm/radeon/radeon_kms.c:592:43:    got unsigned int [usertype] 
*[assigned] value_ptr
drivers/gpu/drm/radeon/radeon_kms.c:609:26: warning: incorrect type in argument 
1 (different address spaces)
drivers/gpu/drm/radeon/radeon_kms.c:609:26:    expected void [noderef] __user 
*to
drivers/gpu/drm/radeon/radeon_kms.c:609:26:    got unsigned int [usertype] 
*[assigned] value_ptr

Signed-off-by: Ben Dooks <[email protected]>
---
 drivers/gpu/drm/radeon/radeon_kms.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/radeon/radeon_kms.c 
b/drivers/gpu/drm/radeon/radeon_kms.c
index dc43fd790a9c..57bc60c33937 100644
--- a/drivers/gpu/drm/radeon/radeon_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_kms.c
@@ -231,13 +231,14 @@ int radeon_info_ioctl(struct drm_device *dev, void *data, 
struct drm_file *filp)
        struct radeon_device *rdev = dev->dev_private;
        struct drm_radeon_info *info = data;
        struct radeon_mode_info *minfo = &rdev->mode_info;
-       uint32_t *value, value_tmp, *value_ptr, value_size;
+       uint32_t *value, value_tmp, value_size;
+       uint32_t __user *value_ptr;
        struct ttm_resource_manager *man;
        uint64_t value64;
        struct drm_crtc *crtc;
        int i, found;
 
-       value_ptr = (uint32_t *)((unsigned long)info->value);
+       value_ptr = (uint32_t __user *)((unsigned long)info->value);
        value = &value_tmp;
        value_size = sizeof(uint32_t);
 
-- 
2.37.2.352.g3c44437643

Reply via email to