Subject: Re: [PATCH net-next] bridge: Fix incorrect judgment of promisc

From: Toshiaki Makita <[email-masked]>
Date: Thu, 05 Jun 2014 20:21:36 +0900

(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 <[email-masked]>
>> ---
>>  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.)

Toshiaki Makita