[NET]: Annotate h_proto in struct ethhdr
authorPavel Roskin <proski@gnu.org>
Thu, 10 Nov 2005 21:03:08 +0000 (13:03 -0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 10 Nov 2005 21:03:08 +0000 (13:03 -0800)
The protocol field in ethernet headers is big-endian and should be
annotated as such.  This patch allows detection of missing ntohs() calls
on the ethernet protocol field when sparse is run with __CHECK_ENDIAN__
defined.

This is a revised version that includes <linux/types.h> so that the
userspace programs are not confused by __be16.  Thanks to David S.
Miller.

Signed-off-by: Pavel Roskin <proski@gnu.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/if_ether.h

index d21c305c6c64cec22a264fd6cb8f6ae6fb22e784..fe26d431de8704710d3ffabd9faa7d2d7fa35539 100644 (file)
@@ -21,6 +21,8 @@
 #ifndef _LINUX_IF_ETHER_H
 #define _LINUX_IF_ETHER_H
 
+#include <linux/types.h>
+
 /*
  *     IEEE 802.3 Ethernet magic constants.  The frame sizes omit the preamble
  *     and FCS/CRC (frame check sequence). 
 struct ethhdr {
        unsigned char   h_dest[ETH_ALEN];       /* destination eth addr */
        unsigned char   h_source[ETH_ALEN];     /* source ether addr    */
-       unsigned short  h_proto;                /* packet type ID field */
+       __be16          h_proto;                /* packet type ID field */
 } __attribute__((packed));
 
 #ifdef __KERNEL__