[PATCH] staging: comedi: dt2811: add parentheses to fix logic on s->subdev_flags

Ian Abbott abbotti at mev.co.uk
Tue Jul 26 09:19:09 UTC 2016


On 25/07/16 23:25, Colin King wrote:
> From: Colin Ian King <colin.king at canonical.com>
>
> We need to add parentheses around ternary operations because currently
> the expression SDF_READABLE | (it->options[2] == 1) always evaluates to
> true, meaning s->subdev_flags is always assigned SDF_DIFF. Putting the
> parentheses around the ternarary operations results in the intended
> expression of SDF_REABLE logically or'd with one of SDF_DIFF,
> SDF_COMMON or SDF_GROUND.
>
> Signed-off-by: Colin Ian King <colin.king at canonical.com>
> ---
>  drivers/staging/comedi/drivers/dt2811.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/staging/comedi/drivers/dt2811.c b/drivers/staging/comedi/drivers/dt2811.c
> index 904f6377..8bbd938 100644
> --- a/drivers/staging/comedi/drivers/dt2811.c
> +++ b/drivers/staging/comedi/drivers/dt2811.c
> @@ -588,8 +588,8 @@ static int dt2811_attach(struct comedi_device *dev, struct comedi_devconfig *it)
>  	s = &dev->subdevices[0];
>  	s->type		= COMEDI_SUBD_AI;
>  	s->subdev_flags	= SDF_READABLE |
> -			  (it->options[2] == 1) ? SDF_DIFF :
> -			  (it->options[2] == 2) ? SDF_COMMON : SDF_GROUND;
> +			  ((it->options[2] == 1) ? SDF_DIFF :
> +			   (it->options[2] == 2) ? SDF_COMMON : SDF_GROUND);
>  	s->n_chan	= (it->options[2] == 1) ? 8 : 16;
>  	s->maxdata	= 0x0fff;
>  	s->range_table	= board->is_pgh ? &dt2811_pgh_ai_ranges
>

Thanks for catching that.

Fixes: 7c9574090d30 ("staging: comedi: dt2811: simplify A/D reference 
configuration"
Cc: <stable at vger.kernel.org> # 4.7+
Reviewed-by: Ian Abbott <abbotti at mev.co.uk>

-- 
-=( Ian Abbott @ MEV Ltd.    E-mail: <abbotti at mev.co.uk> )=-
-=(                          Web: http://www.mev.co.uk/  )=-


More information about the devel mailing list