2010-07-08 04:46:07

by Justin P. Mattock

[permalink] [raw]
Subject: [PATCH]video:gspca.c Fix warning: case value '7' not in enumerated type 'enum v4l2_memory'

This fixes a warning I'm seeing when building:
CC [M] drivers/media/video/gspca/gspca.o
drivers/media/video/gspca/gspca.c: In function 'vidioc_reqbufs':
drivers/media/video/gspca/gspca.c:1508:2: warning: case value '7' not in enumerated type 'enum v4l2_memory'

Signed-off-by: Justin P. Mattock <[email protected]>

---
drivers/media/video/gspca/gspca.c | 1 -
include/linux/videodev2.h | 1 +
2 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/media/video/gspca/gspca.c b/drivers/media/video/gspca/gspca.c
index 678675b..a9b4d97 100644
--- a/drivers/media/video/gspca/gspca.c
+++ b/drivers/media/video/gspca/gspca.c
@@ -84,7 +84,6 @@ static void PDEBUG_MODE(char *txt, __u32 pixfmt, int w, int h)

/* specific memory types - !! should be different from V4L2_MEMORY_xxx */
#define GSPCA_MEMORY_NO 0 /* V4L2_MEMORY_xxx starts from 1 */
-#define GSPCA_MEMORY_READ 7

#define BUF_ALL_FLAGS (V4L2_BUF_FLAG_QUEUED | V4L2_BUF_FLAG_DONE)

diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index 047f7e6..b73aa18 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -170,6 +170,7 @@ enum v4l2_memory {
V4L2_MEMORY_MMAP = 1,
V4L2_MEMORY_USERPTR = 2,
V4L2_MEMORY_OVERLAY = 3,
+ GSPCA_MEMORY_READ = 7,
};

/* see also http://vektor.theorem.ca/graphics/ycbcr/ */
--
1.7.1.rc1.21.gf3bd6


2010-07-08 06:39:53

by Jean-Francois Moine

[permalink] [raw]
Subject: Re: [PATCH]video:gspca.c Fix warning: case value '7' not in enumerated type 'enum v4l2_memory'

On Wed, 7 Jul 2010 21:46:18 -0700
"Justin P. Mattock" <[email protected]> wrote:

> This fixes a warning I'm seeing when building:
> CC [M] drivers/media/video/gspca/gspca.o
> drivers/media/video/gspca/gspca.c: In function 'vidioc_reqbufs':
> drivers/media/video/gspca/gspca.c:1508:2: warning: case value '7' not
> in enumerated type 'enum v4l2_memory'

Hi Justin,

I don't agree with your patch: the value GSPCA_MEMORY_READ must not be
seen by user applications.

The warning may be simply fixed by (change the line numbers):

--- gspca.c~ 2010-07-08 08:15:14.000000000 +0200
+++ gspca.c 2010-07-08 08:28:52.000000000 +0200
@@ -1467,7 +1467,8 @@ static int vidioc_reqbufs(struct file *f
struct gspca_dev *gspca_dev = priv;
int i, ret = 0, streaming;

- switch (rb->memory) {
+ i = rb->memory; /* (avoid compilation warning) */
+ switch (i) {
case GSPCA_MEMORY_READ: /* (internal call) */
case V4L2_MEMORY_MMAP:
case V4L2_MEMORY_USERPTR:

Cheers.

--
Ken ar c'hentaƱ | ** Breizh ha Linux atav! **
Jef | http://moinejf.free.fr/

2010-07-08 07:20:24

by Justin P. Mattock

[permalink] [raw]
Subject: Re: [PATCH]video:gspca.c Fix warning: case value '7' not in enumerated type 'enum v4l2_memory'

On 07/07/2010 11:40 PM, Jean-Francois Moine wrote:
> On Wed, 7 Jul 2010 21:46:18 -0700
> "Justin P. Mattock"<[email protected]> wrote:
>
>> This fixes a warning I'm seeing when building:
>> CC [M] drivers/media/video/gspca/gspca.o
>> drivers/media/video/gspca/gspca.c: In function 'vidioc_reqbufs':
>> drivers/media/video/gspca/gspca.c:1508:2: warning: case value '7' not
>> in enumerated type 'enum v4l2_memory'
>
> Hi Justin,
>
> I don't agree with your patch: the value GSPCA_MEMORY_READ must not be
> seen by user applications.
>
> The warning may be simply fixed by (change the line numbers):
>
> --- gspca.c~ 2010-07-08 08:15:14.000000000 +0200
> +++ gspca.c 2010-07-08 08:28:52.000000000 +0200
> @@ -1467,7 +1467,8 @@ static int vidioc_reqbufs(struct file *f
> struct gspca_dev *gspca_dev = priv;
> int i, ret = 0, streaming;
>
> - switch (rb->memory) {
> + i = rb->memory; /* (avoid compilation warning) */
> + switch (i) {
> case GSPCA_MEMORY_READ: /* (internal call) */
> case V4L2_MEMORY_MMAP:
> case V4L2_MEMORY_USERPTR:
>
> Cheers.
>


o.k. buddy.. make sense with the userspace etc..
Anyways looks good, builds without a warning..

Tested-By: Justin P. Mattock <[email protected]>

cheers as well,

Justin P. Mattock