cvs commit: src/sys/net if_bridge.c

Andrew Thompson thompsa at freebsd.org
Tue Jan 3 09:58:04 PST 2006


On Tue, Jan 03, 2006 at 12:21:56PM +0100, Pawel Jakub Dawidek wrote:
> On Mon, Jan 02, 2006 at 11:02:43PM +0000, Andrew Thompson wrote:
> +> thompsa     2006-01-02 23:02:43 UTC
> +> 
> +>   FreeBSD src repository
> +> 
> +>   Modified files:
> +>     sys/net              if_bridge.c 
> +>   Log:
> +>   Fix a brain-o in the last commit, the conditional was always false.
> [...]
> +> -	if (flags & IFBAF_DYNAMIC)
> +> +	if ((flags & IFBAF_TYPEMASK) == IFBAF_DYNAMIC)
> 
> On first look, I thought it does exactly the same thing, but I checked
> the code and now I know it doesn't - IFBAF_DYNAMIC is 0x00.

Yes, I was surprised and a little peeved too. This has been inherited
from Open/NetBSD.

> Another example that giving 0 for a define which should represent a flag
> is a bad idea. The same problem we had in the past with M_NOWAIT.
> 
> You should consider changing it to some real value to avoid mistakes
> like this in the future or removing IFBAF_DYNAMIC entirely and changing
> such condition to 'if (!(flags & IFBAF_STATIC))'.

It may be best to leave IFBAF_STATIC as 0x01 and set IFBAF_DYNAMIC to
0x02, this would make the MFC less invasive. I'll get it sorted out.


thanks,
Andrew



More information about the cvs-all mailing list