diff options
Diffstat (limited to 'include/net/gue.h')
| -rw-r--r-- | include/net/gue.h | 18 | 
1 files changed, 9 insertions, 9 deletions
| diff --git a/include/net/gue.h b/include/net/gue.h index 2fdb29ca74c2..fdad41469b65 100644 --- a/include/net/gue.h +++ b/include/net/gue.h @@ -44,10 +44,10 @@ struct guehdr {  #else  #error  "Please fix <asm/byteorder.h>"  #endif -			__u8    proto_ctype; -			__u16   flags; +			__u8	proto_ctype; +			__be16	flags;  		}; -		__u32 word; +		__be32	word;  	};  }; @@ -84,11 +84,10 @@ static inline size_t guehdr_priv_flags_len(__be32 flags)   * if there is an unknown standard or private flags, or the options length for   * the flags exceeds the options length specific in hlen of the GUE header.   */ -static inline int validate_gue_flags(struct guehdr *guehdr, -				     size_t optlen) +static inline int validate_gue_flags(struct guehdr *guehdr, size_t optlen)  { +	__be16 flags = guehdr->flags;  	size_t len; -	__be32 flags = guehdr->flags;  	if (flags & ~GUE_FLAGS_ALL)  		return 1; @@ -101,12 +100,13 @@ static inline int validate_gue_flags(struct guehdr *guehdr,  		/* Private flags are last four bytes accounted in  		 * guehdr_flags_len  		 */ -		flags = *(__be32 *)((void *)&guehdr[1] + len - GUE_LEN_PRIV); +		__be32 pflags = *(__be32 *)((void *)&guehdr[1] + +					    len - GUE_LEN_PRIV); -		if (flags & ~GUE_PFLAGS_ALL) +		if (pflags & ~GUE_PFLAGS_ALL)  			return 1; -		len += guehdr_priv_flags_len(flags); +		len += guehdr_priv_flags_len(pflags);  		if (len > optlen)  			return 1;  	} | 

