All of lore.kernel.org
 help / color / mirror / Atom feed
From: Krzysztof Halasa <khc@pm.waw.pl>
To: Roel Kluin <roel.kluin@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	David Miller <davem@davemloft.net>,
	romieu@fr.zoreil.com, netdev@vger.kernel.org
Subject: Re: [PATCH] WAN: bit and/or confusion
Date: Thu, 20 Aug 2009 16:25:13 +0200	[thread overview]
Message-ID: <m3eir6k1fa.fsf@intrepid.localdomain> (raw)
In-Reply-To: <4A8D57F8.1050106@gmail.com> (Roel Kluin's message of "Thu\, 20 Aug 2009 16\:04\:40 +0200")

Roel Kluin <roel.kluin@gmail.com> writes:

>> Perhaps something like the following should be better?
>> 
>> 		u8 status = ~skb->data[pkt_len];
>> 
>> 		if (status == 0)
>> 			looks_good...;
>> 		else {
>> 			if (status & FrameRab)
>> 				...
>> 			if (status & FrameVfr)
>> 				...
>> 			etc.
>> 			rx_errors++;
>> 		}
>
> I don't understand your suggestion - why status == 0? doesn't the patch
> below do what you want instead?

Because I think (didn't read the manual) that these (inverted) bits
represent specific errors. So I suggested inverting them, then treating
as separate error bits, it should be easier to read.

That's only a suggestion of course (unless someone sends me the/a card -
non-returnable "donations" only please - and I can work on it
personally).

IOW all (inverted) bits = 1 => all bits zero after inversion => no
errors. This changes functionality a bit, and would need to be checked.
Otherwise, you could test: if ((status & FrameOk) == 0) then looks_good().

> diff --git a/drivers/net/wan/dscc4.c b/drivers/net/wan/dscc4.c
> index 8face5d..88534b6 100644
> --- a/drivers/net/wan/dscc4.c
> +++ b/drivers/net/wan/dscc4.c
> @@ -663,12 +663,12 @@ static inline void dscc4_rx_skb(struct dscc4_dev_priv *dpriv,
>  	} else {
>  		if (skb->data[pkt_len] & FrameRdo)
>  			dev->stats.rx_fifo_errors++;
> -		else if (!(skb->data[pkt_len] | ~FrameCrc))
> +		else if (!(skb->data[pkt_len] & FrameCrc))
>  			dev->stats.rx_crc_errors++;
> -		else if (!(skb->data[pkt_len] | ~(FrameVfr | FrameRab)))
> +		else if ((skb->data[pkt_len] & (FrameVfr | FrameRab)) !=
> +				FrameVfr | FrameRab)
>  			dev->stats.rx_length_errors++;
> -		else
> -			dev->stats.rx_errors++;
> +		dev->stats.rx_errors++;
>  		dev_kfree_skb_irq(skb);
>  	}
>  refill:

Guess it would do.
-- 
Krzysztof Halasa

  reply	other threads:[~2009-08-20 14:25 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-14 12:51 [PATCH] WAN: bit and/or confusion Roel Kluin
2009-08-14 23:32 ` David Miller
2009-08-14 23:36 ` Andrew Morton
2009-08-14 23:41   ` David Miller
2009-08-14 23:58     ` Andrew Morton
2009-08-15 13:41       ` Roel Kluin
2009-08-15 14:13         ` Francois Romieu
2009-08-15 18:46         ` Krzysztof Halasa
2009-08-20 14:04           ` Roel Kluin
2009-08-20 14:25             ` Krzysztof Halasa [this message]
2009-08-31  5:02             ` David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m3eir6k1fa.fsf@intrepid.localdomain \
    --to=khc@pm.waw.pl \
    --cc=akpm@linux-foundation.org \
    --cc=davem@davemloft.net \
    --cc=netdev@vger.kernel.org \
    --cc=roel.kluin@gmail.com \
    --cc=romieu@fr.zoreil.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.