Commit 91211dd1 authored by Julia Lawall's avatar Julia Lawall Committed by Greg Kroah-Hartman

drivers/staging/comedi/drivers/me4000.c: adjust suspicious bit operation

TRIG_ROUND_NEAREST is 0, so a bit-and with it is always false.  The
value TRIG_ROUND_MASK covers the bits of the TRIG_ROUND constants, so
first pick those bits and then make the test using ==.

The same is done for TRIG_ROUND_UP for symmetry, even though bit-and would
be sufficient in this case.

This problem was found using Coccinelle (http://coccinelle.lip6.fr/).
Signed-off-by: default avatarJulia Lawall <julia@diku.dk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 513e48f9
...@@ -948,10 +948,10 @@ static int ai_round_cmd_args(struct comedi_device *dev, ...@@ -948,10 +948,10 @@ static int ai_round_cmd_args(struct comedi_device *dev,
*init_ticks = (cmd->start_arg * 33) / 1000; *init_ticks = (cmd->start_arg * 33) / 1000;
rest = (cmd->start_arg * 33) % 1000; rest = (cmd->start_arg * 33) % 1000;
if (cmd->flags & TRIG_ROUND_NEAREST) { if ((cmd->flags & TRIG_ROUND_MASK) == TRIG_ROUND_NEAREST) {
if (rest > 33) if (rest > 33)
(*init_ticks)++; (*init_ticks)++;
} else if (cmd->flags & TRIG_ROUND_UP) { } else if ((cmd->flags & TRIG_ROUND_MASK) == TRIG_ROUND_UP) {
if (rest) if (rest)
(*init_ticks)++; (*init_ticks)++;
} }
...@@ -961,10 +961,10 @@ static int ai_round_cmd_args(struct comedi_device *dev, ...@@ -961,10 +961,10 @@ static int ai_round_cmd_args(struct comedi_device *dev,
*scan_ticks = (cmd->scan_begin_arg * 33) / 1000; *scan_ticks = (cmd->scan_begin_arg * 33) / 1000;
rest = (cmd->scan_begin_arg * 33) % 1000; rest = (cmd->scan_begin_arg * 33) % 1000;
if (cmd->flags & TRIG_ROUND_NEAREST) { if ((cmd->flags & TRIG_ROUND_MASK) == TRIG_ROUND_NEAREST) {
if (rest > 33) if (rest > 33)
(*scan_ticks)++; (*scan_ticks)++;
} else if (cmd->flags & TRIG_ROUND_UP) { } else if ((cmd->flags & TRIG_ROUND_MASK) == TRIG_ROUND_UP) {
if (rest) if (rest)
(*scan_ticks)++; (*scan_ticks)++;
} }
...@@ -974,10 +974,10 @@ static int ai_round_cmd_args(struct comedi_device *dev, ...@@ -974,10 +974,10 @@ static int ai_round_cmd_args(struct comedi_device *dev,
*chan_ticks = (cmd->convert_arg * 33) / 1000; *chan_ticks = (cmd->convert_arg * 33) / 1000;
rest = (cmd->convert_arg * 33) % 1000; rest = (cmd->convert_arg * 33) % 1000;
if (cmd->flags & TRIG_ROUND_NEAREST) { if ((cmd->flags & TRIG_ROUND_MASK) == TRIG_ROUND_NEAREST) {
if (rest > 33) if (rest > 33)
(*chan_ticks)++; (*chan_ticks)++;
} else if (cmd->flags & TRIG_ROUND_UP) { } else if ((cmd->flags & TRIG_ROUND_MASK) == TRIG_ROUND_UP) {
if (rest) if (rest)
(*chan_ticks)++; (*chan_ticks)++;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment