tvaudio.c: possible problem with V4L2_TUNER_MODE_MONO

From: Julia Lawall
Date: Sat May 02 2009 - 09:19:33 EST


The file drivers/media/video/tvaudio.c contains the following code:

(starting at line 1257 in a recent linux-next)

if (mode & V4L2_TUNER_MODE_MONO)
s1 |= TDA8425_S1_STEREO_MONO;
if (mode & V4L2_TUNER_MODE_STEREO)
s1 |= TDA8425_S1_STEREO_SPATIAL;

(starting at line 1856 in a recent linux-next)

if (mode & V4L2_TUNER_MODE_MONO)
vt->rxsubchans |= V4L2_TUNER_SUB_MONO;
if (mode & V4L2_TUNER_MODE_STEREO)
vt->rxsubchans |= V4L2_TUNER_SUB_STEREO;

The only possible value of V4L2_TUNER_MODE_MONO, however, seems to be 0, as
defined in include/linux/videodev2.h, and thus the first test in each case
is never true. Is this what is intended, or should the tests be expressed
in another way?

julia

This problem was found using the following semantic match:
(http://www.emn.fr/x-info/coccinelle/)

@r expression@
identifier C;
expression E;
position p;
@@

(
E & C@p && ...
|
E & C@p || ...
)

@s@
identifier r.C;
position p1;
@@

#define C 0

@t@
identifier r.C;
expression E != 0;
@@

#define C E

@script:python depends on s && !t@
p << r.p;
C << r.C;
@@

cocci.print_main("and with 0", p)
--
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/