Subject: Re: [PATCH] net/hamradio: fix test in receive()

From: Andrew Morton <[email-masked]>
Date: Tue, 13 Oct 2009 19:10:03 -0700

On Tue, 06 Oct 2009 13:20:08 +0200 Roel Kluin <[email-masked]> wrote:

> The negation makes it a bool before the comparison and hence it
> will never evaluate to true.
> 
> Signed-off-by: Roel Kluin <[email-masked]>
> ---
> Was this intended?
> 
> diff --git a/drivers/net/hamradio/baycom_epp.c b/drivers/net/hamradio/baycom_epp.c
> index 7bcaf7c..ee06a13 100644
> --- a/drivers/net/hamradio/baycom_epp.c
> +++ b/drivers/net/hamradio/baycom_epp.c
> @@ -596,7 +596,8 @@ static int receive(struct net_device *dev, int cnt)
>  						state = 0;
>  
>  					/* not flag received */
> -					else if (!(bitstream & (0x1fe << j)) != (0x0fc << j)) {
> +					else if ((bitstream & (0x1fe << j)) !=
> +							(0x0fc << j)) {
>  						if (state)
>  							do_rxpacket(dev);
>  						bc->hdlcrx.bufcnt = 0;

It does look like that is what was intended.

With this fix we're turning on a code path which probably hasn't been
executed by anyone in a decade or so.  I wonder what it'll do?