Subject: Re: [RFD][PATCH] typhoon and core sample for folding away VLAN stuff

From: Stephen Hemminger <[email-masked]>
Date: Wed, 12 Apr 2006 13:23:22 -0700

On Wed, 12 Apr 2006 13:10:06 -0700
Ben Greear <[email-masked]> wrote:

> What is the reasoning for this change?  Is the compiler
> able to optomize the right-hand-side to a constant with your
> change in place?
> 
> > -	if (veth->h_vlan_proto != __constant_htons(ETH_P_8021Q)) {
> > +	if (veth->h_vlan_proto != htons(ETH_P_8021Q)) {
> >  		return -EINVAL;
> >  	}

Read the source, the macro handles it.

For i386:
	htons maps to __cpu_to_be16
	cpu_to_be16 maps to swab16 which is defined in swab.h

#  define __swab16(x) \
(__builtin_constant_p((__u16)(x)) ? \
 ___swab16((x)) : \
 __fswab16((x)))