You can't memset the contents of a __user pointer. Instead, call copy_to_user to
copy links.reserved (which is zeroed) to the user memory.

This fixes this sparse warning:

SPARSE:drivers/media/mc/mc-device.c drivers/media/mc/mc-device.c:521:16:  
warning: incorrect type in argument 1 (different address spaces)

Signed-off-by: Hans Verkuil <hverkuil-ci...@xs4all.nl>
Fixes: f49308878d720 ("media: media_device_enum_links32: clean a reserved 
field")
---
Note: this patch sits on top of https://patchwork.linuxtv.org/patch/56330/,
which moves the media sources to drivers/media/mc.
---
diff --git a/drivers/media/mc/mc-device.c b/drivers/media/mc/mc-device.c
index 6893843edada..8e2a66493e62 100644
--- a/drivers/media/mc/mc-device.c
+++ b/drivers/media/mc/mc-device.c
@@ -518,8 +518,9 @@ static long media_device_enum_links32(struct media_device 
*mdev,
        if (ret)
                return ret;

-       memset(ulinks->reserved, 0, sizeof(ulinks->reserved));
-
+       if (copy_to_user(ulinks->reserved, links.reserved,
+                        sizeof(ulinks->reserved)))
+               return -EFAULT;
        return 0;
 }

Reply via email to