Re: [PATCH] fix compiler warning in drivers/media/video/video-buf.c

From: Martin Bligh
Date: Fri Sep 29 2006 - 16:00:49 EST


Mauro Carvalho Chehab wrote:
Em Qui, 2006-09-28 às 10:51 -0700, Andrew Morton escreveu:

On Thu, 28 Sep 2006 10:31:58 -0700
Martin Bligh <mbligh@xxxxxxxxxx> wrote:


That being said, this driver is wrong to be storing dma addresses in a
void*. And indeed there is a FIXME regarding this at
include/linux/videodev2.h:476, so I guess hiding this warning won't obscure
any fault which wasn't already known about..


Yes. The original structure is:

struct v4l2_framebuffer
{
__u32 capability;
__u32 flags;
void* base;
struct v4l2_pix_format fmt;
};

Since this is used at ioctl definition, changing this would break
userspace apps. We might replace this to something like:

struct v4l2_framebuffer
{
__u32 capability;
__u32 flags;
union {
void* base_ptr; /*FOO definition to avoid breaking userpace apps */
dma_addr_t base;
}
struct v4l2_pix_format fmt;
};

This way, base will have the expected type, and it won't break any
userspace app if sizeof(void *)<=sizeof(base). I think this is true for
all architectures (anyway, if it isn't, v4l is broken anyway).

Won't that just make the userspace apps not work properly? Not that
they do right now, but how does masking the problem help?

M.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/