vxlan: fix incorrect type
authorJiri Benc <jbenc@redhat.com>
Mon, 11 Apr 2016 15:06:08 +0000 (17:06 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 11 Apr 2016 19:01:56 +0000 (15:01 -0400)
The protocol is 16bit, not 32bit.

Fixes: e1e5314de08ba ("vxlan: implement GPE")
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Jiri Benc <jbenc@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/vxlan.c

index 9f3634064c921fbd212d022705a5d21b355da316..7f697a3f00a44cf6554a43c20c3803f66cf53fbf 100644 (file)
@@ -1181,7 +1181,7 @@ out:
 }
 
 static bool vxlan_parse_gpe_hdr(struct vxlanhdr *unparsed,
-                               __be32 *protocol,
+                               __be16 *protocol,
                                struct sk_buff *skb, u32 vxflags)
 {
        struct vxlanhdr_gpe *gpe = (struct vxlanhdr_gpe *)unparsed;
@@ -1284,7 +1284,7 @@ static int vxlan_rcv(struct sock *sk, struct sk_buff *skb)
        struct vxlanhdr unparsed;
        struct vxlan_metadata _md;
        struct vxlan_metadata *md = &_md;
-       __be32 protocol = htons(ETH_P_TEB);
+       __be16 protocol = htons(ETH_P_TEB);
        bool raw_proto = false;
        void *oiph;