]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
media: isppreview: fix __user annotations
authorMauro Carvalho Chehab <mchehab@s-opensource.com>
Fri, 6 Apr 2018 12:33:44 +0000 (08:33 -0400)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Tue, 17 Apr 2018 09:31:13 +0000 (05:31 -0400)
The 'from' variable at preview_config() expects an __user * type.

However, the logic there does:

    from = *(void * __user *) ((void *)cfg + attr->config_offset);

With actually means a void pointer, pointing to a void __ user
pointer. When the first pointer is de-referenced with *(foo),
the type it returns is "void *" instead of "void __user *".

Change it to:
    from = *(void __user **) ((void *)cfg + attr->config_offset);

in order to obtain, when de-referenced, a void __user pointer,
as desired.

That prevent those warnings:
   drivers/media/platform/omap3isp/isppreview.c:893:45: warning: incorrect type in initializer (different address spaces)
   drivers/media/platform/omap3isp/isppreview.c:893:45:    expected void [noderef] <asn:1>*from
   drivers/media/platform/omap3isp/isppreview.c:893:45:    got void *[noderef] <asn:1><noident>
   drivers/media/platform/omap3isp/isppreview.c:893:47: warning: dereference of noderef expression

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/platform/omap3isp/isppreview.c

index ac30a0f837801ae57d3227429e4492a23306a0a9..c2ef5870b231b7c5d295a46f45578c1beae678e4 100644 (file)
@@ -890,7 +890,7 @@ static int preview_config(struct isp_prev_device *prev,
                params = &prev->params.params[!!(active & bit)];
 
                if (cfg->flag & bit) {
-                       void __user *from = *(void * __user *)
+                       void __user *from = *(void __user **)
                                ((void *)cfg + attr->config_offset);
                        void *to = (void *)params + attr->param_offset;
                        size_t size = attr->param_size;