[patch] staging: comedi: dt282x: dt282x_ai_insn_read() always fails

Ian Abbott abbotti at mev.co.uk
Tue Aug 20 09:50:45 UTC 2013


On 2013-08-20 09:57, Dan Carpenter wrote:
> In dt282x_ai_insn_read() we call this macro like:
> wait_for(!mux_busy(), comedi_error(dev, "timeout\n"); return -ETIME;);
> Because the if statement doesn't have curly braces it means we always
> return -ETIME and the function never succeeds.
>
> Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>
> ---
> This macro is very ugly, btw.
>
> diff --git a/drivers/staging/comedi/drivers/dt282x.c b/drivers/staging/comedi/drivers/dt282x.c
> index 23cb0335..4a25382 100644
> --- a/drivers/staging/comedi/drivers/dt282x.c
> +++ b/drivers/staging/comedi/drivers/dt282x.c
> @@ -267,8 +267,9 @@ struct dt282x_private {
>   			}					\
>   			udelay(5);				\
>   		}						\
> -		if (_i)						\
> +		if (_i) {					\
>   			b					\
> +		}						\
>   	} while (0)
>
>   static int prep_ai_dma(struct comedi_device *dev, int chan, int size);
>

Acked-by: Ian Abbott <abbotti at mev.co.uk>

The bug was introduced by commit 
18e7e78e945527d9cb570a17f0835815f1794c2f in mainline.  And yes, it is ugly.

-- 
-=( Ian Abbott @ MEV Ltd.    E-mail: <abbotti at mev.co.uk>        )=-
-=( Tel: +44 (0)161 477 1898   FAX: +44 (0)161 718 3587         )=-


More information about the devel mailing list