diff --git a/[refs] b/[refs] index f4f5defca4c9..de59ba70f77d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5d174dd80ce94b7ed0950e31fc9a0122c689523b +refs/heads/master: 7d836a7679a85f75bbc96d631b4007a78396b190 diff --git a/trunk/drivers/net/vxlan.c b/trunk/drivers/net/vxlan.c index d8de8a1303eb..66fd7bef0a4d 100644 --- a/trunk/drivers/net/vxlan.c +++ b/trunk/drivers/net/vxlan.c @@ -896,7 +896,7 @@ static void vxlan_set_owner(struct net_device *dev, struct sk_buff *skb) * better and maybe available from hardware * secondary choice is to use jhash on the Ethernet header */ -static u16 vxlan_src_port(const struct vxlan_dev *vxlan, struct sk_buff *skb) +static __be16 vxlan_src_port(const struct vxlan_dev *vxlan, struct sk_buff *skb) { unsigned int range = (vxlan->port_max - vxlan->port_min) + 1; u32 hash; @@ -906,7 +906,7 @@ static u16 vxlan_src_port(const struct vxlan_dev *vxlan, struct sk_buff *skb) hash = jhash(skb->data, 2 * ETH_ALEN, (__force u32) skb->protocol); - return (((u64) hash * range) >> 32) + vxlan->port_min; + return htons((((u64) hash * range) >> 32) + vxlan->port_min); } static int handle_offloads(struct sk_buff *skb) @@ -965,8 +965,7 @@ static netdev_tx_t vxlan_xmit_one(struct sk_buff *skb, struct net_device *dev, struct udphdr *uh; struct flowi4 fl4; __be32 dst; - __u16 src_port; - __be16 dst_port; + __be16 src_port, dst_port; u32 vni; __be16 df = 0; __u8 tos, ttl; @@ -1053,7 +1052,7 @@ static netdev_tx_t vxlan_xmit_one(struct sk_buff *skb, struct net_device *dev, uh = udp_hdr(skb); uh->dest = dst_port; - uh->source = htons(src_port); + uh->source = src_port; uh->len = htons(skb->len); uh->check = 0;