From: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
To: David Laight <David.Laight@ACULAB.COM>,
"David S . Miller" <davem@davemloft.net>,
Stephen Hemminger <stephen@networkplumber.org>
Cc: Vlad Yasevich <vyasevic@redhat.com>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"bridge@lists.linux-foundation.org"
<bridge@lists.linux-foundation.org>
Subject: Re: [Bridge] [PATCH net-next] bridge: Fix incorrect judgment of promisc
Date: Thu, 05 Jun 2014 22:05:52 +0900 [thread overview]
Message-ID: <53906B30.7080907@lab.ntt.co.jp> (raw)
In-Reply-To: <063D6719AE5E284EB5DD2968C1650D6D17257D43@AcuExch.aculab.com>
(2014/06/05 21:55), David Laight wrote:
> From: Toshiaki Makita
>> (2014/06/05 20:03), David Laight wrote:
>>> From: Toshiaki Makita
>>>> br_manage_promisc() incorrectly expects br_auto_port() to return only 0
>>>> or 1, while it actually returns flags, i.e., a subset of BR_AUTO_MASK.
>>>>
>>>> Signed-off-by: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
>>>> ---
>>>> net/bridge/br_if.c | 2 +-
>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c
>>>> index a08d2b8..6a07a40 100644
>>>> --- a/net/bridge/br_if.c
>>>> +++ b/net/bridge/br_if.c
>>>> @@ -153,7 +153,7 @@ void br_manage_promisc(struct net_bridge *br)
>>>> * This lets us disable promiscuous mode and write
>>>> * this config to hw.
>>>> */
>>>> - if (br->auto_cnt <= br_auto_port(p))
>>>> + if (br->auto_cnt <= !!br_auto_port(p))
>>>> br_port_clear_promisc(p);
>>>> else
>>>> br_port_set_promisc(p);
>>>
>>> Why not the less confusing:
>>> if (br->auto_cnt || br_auto_port(p))
>>> and reverse the then/else lines?
>>
>> I'm respecting the original style, but I'm not particular about this style.
>> I'll make less confusing one, thanks :)
>>
>> (Your suggested condition is not exactly the same as current one, even
>> if reversing if/else. v2 will be different than it. Anyway, thanks.)
>
> A quick truth table:
> auto_cnt auto_port set/clear
> 0 0 clear
> 0 1 clear
> 1 0 set
> 1 1 clear
> 2+ 0/1 clear
The last line should be set.
Thanks,
Toshiaki Makita
>
> So you want:
> if (br->auto_cnt && !br_auto_port(p))
> br_port_set_promisc(p);
> else
> br_port_clear_promisc(p);
>
> Does seem like a strange condition.
>
> David
WARNING: multiple messages have this Message-ID (diff)
From: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
To: David Laight <David.Laight@ACULAB.COM>,
"David S . Miller" <davem@davemloft.net>,
Stephen Hemminger <stephen@networkplumber.org>
Cc: Vlad Yasevich <vyasevic@redhat.com>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"bridge@lists.linux-foundation.org"
<bridge@lists.linux-foundation.org>
Subject: Re: [PATCH net-next] bridge: Fix incorrect judgment of promisc
Date: Thu, 05 Jun 2014 22:05:52 +0900 [thread overview]
Message-ID: <53906B30.7080907@lab.ntt.co.jp> (raw)
In-Reply-To: <063D6719AE5E284EB5DD2968C1650D6D17257D43@AcuExch.aculab.com>
(2014/06/05 21:55), David Laight wrote:
> From: Toshiaki Makita
>> (2014/06/05 20:03), David Laight wrote:
>>> From: Toshiaki Makita
>>>> br_manage_promisc() incorrectly expects br_auto_port() to return only 0
>>>> or 1, while it actually returns flags, i.e., a subset of BR_AUTO_MASK.
>>>>
>>>> Signed-off-by: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
>>>> ---
>>>> net/bridge/br_if.c | 2 +-
>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c
>>>> index a08d2b8..6a07a40 100644
>>>> --- a/net/bridge/br_if.c
>>>> +++ b/net/bridge/br_if.c
>>>> @@ -153,7 +153,7 @@ void br_manage_promisc(struct net_bridge *br)
>>>> * This lets us disable promiscuous mode and write
>>>> * this config to hw.
>>>> */
>>>> - if (br->auto_cnt <= br_auto_port(p))
>>>> + if (br->auto_cnt <= !!br_auto_port(p))
>>>> br_port_clear_promisc(p);
>>>> else
>>>> br_port_set_promisc(p);
>>>
>>> Why not the less confusing:
>>> if (br->auto_cnt || br_auto_port(p))
>>> and reverse the then/else lines?
>>
>> I'm respecting the original style, but I'm not particular about this style.
>> I'll make less confusing one, thanks :)
>>
>> (Your suggested condition is not exactly the same as current one, even
>> if reversing if/else. v2 will be different than it. Anyway, thanks.)
>
> A quick truth table:
> auto_cnt auto_port set/clear
> 0 0 clear
> 0 1 clear
> 1 0 set
> 1 1 clear
> 2+ 0/1 clear
The last line should be set.
Thanks,
Toshiaki Makita
>
> So you want:
> if (br->auto_cnt && !br_auto_port(p))
> br_port_set_promisc(p);
> else
> br_port_clear_promisc(p);
>
> Does seem like a strange condition.
>
> David
next prev parent reply other threads:[~2014-06-05 13:05 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-05 10:57 [Bridge] [PATCH net-next] bridge: Fix incorrect judgment of promisc Toshiaki Makita
2014-06-05 10:57 ` Toshiaki Makita
2014-06-05 11:03 ` [Bridge] " David Laight
2014-06-05 11:03 ` David Laight
2014-06-05 11:21 ` [Bridge] " Toshiaki Makita
2014-06-05 11:21 ` Toshiaki Makita
2014-06-05 12:55 ` [Bridge] " David Laight
2014-06-05 12:55 ` David Laight
2014-06-05 13:05 ` Toshiaki Makita [this message]
2014-06-05 13:05 ` Toshiaki Makita
2014-06-05 13:47 ` [Bridge] " David Laight
2014-06-05 13:47 ` David Laight
2014-06-05 15:06 ` [Bridge] " Vlad Yasevich
2014-06-05 15:06 ` Vlad Yasevich
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=53906B30.7080907@lab.ntt.co.jp \
--to=makita.toshiaki@lab.ntt.co.jp \
--cc=David.Laight@ACULAB.COM \
--cc=bridge@lists.linux-foundation.org \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
--cc=stephen@networkplumber.org \
--cc=vyasevic@redhat.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.