[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] Correct use of ! and &
From: |
Edgar E. Iglesias |
Subject: |
Re: [Qemu-devel] [PATCH] Correct use of ! and & |
Date: |
Thu, 26 Aug 2010 15:23:13 +0200 |
User-agent: |
Mutt/1.5.20 (2009-06-14) |
On Sat, Aug 21, 2010 at 09:42:51AM +0000, Blue Swirl wrote:
> Combining bitwise AND and logical NOT is suspicious.
>
> Fixed by this Coccinelle script:
> // From http://article.gmane.org/gmane.linux.kernel/646367
> @@ expression E1,E2; @@
> (
> !E1 & !E2
> |
> - !E1 & E2
> + !(E1 & E2)
> )
>
> Signed-off-by: Blue Swirl <address@hidden>
> ---
>
> Maybe the middle hunk should be fixed this way instead:
> - } else if ((rw == 1) & !matching->d) {
> + } else if ((rw == 1) && !matching->d) {
>
> ---
> hw/etraxfs_eth.c | 2 +-
> target-sh4/helper.c | 4 ++--
> 2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/hw/etraxfs_eth.c b/hw/etraxfs_eth.c
> index b897c9c..ade96f1 100644
> --- a/hw/etraxfs_eth.c
> +++ b/hw/etraxfs_eth.c
> @@ -464,7 +464,7 @@ static int eth_match_groupaddr(struct fs_eth *eth,
> const unsigned char *sa)
>
> /* First bit on the wire of a MAC address signals multicast or
> physical address. */
> - if (!m_individual && !sa[0] & 1)
> + if (!m_individual && !(sa[0] & 1))
> return 0;
Yep, the etrax part is a bug and your patch looks OK to me.
Thanks
Acked-by: Edgar E. Iglesias <address@hidden>