Commit 293e9338 authored by Antonio Quartulli's avatar Antonio Quartulli Committed by Antonio Quartulli

batman-adv: use htons when possible

When comparing a network ordered value with a constant, it
is better to convert the constant at compile time by means
of htons() instead of converting the value at runtime using
ntohs().

This refactoring may slightly improve the code performance.

Moreover substitute __constant_htons() with htons() since
the latter increase readability and it is smart enough to be
as efficient as the former
Signed-off-by: default avatarAntonio Quartulli <ordex@autistici.org>
Signed-off-by: default avatarMarek Lindner <lindner_marek@yahoo.de>
Acked-by: default avatarSimon Wunderlich <siwu@hrz.tu-chemnitz.de>
parent ee75ed88
...@@ -863,25 +863,25 @@ static int batadv_bla_process_claim(struct batadv_priv *bat_priv, ...@@ -863,25 +863,25 @@ static int batadv_bla_process_claim(struct batadv_priv *bat_priv,
struct arphdr *arphdr; struct arphdr *arphdr;
uint8_t *hw_src, *hw_dst; uint8_t *hw_src, *hw_dst;
struct batadv_bla_claim_dst *bla_dst; struct batadv_bla_claim_dst *bla_dst;
uint16_t proto; __be16 proto;
int headlen; int headlen;
unsigned short vid = BATADV_NO_FLAGS; unsigned short vid = BATADV_NO_FLAGS;
int ret; int ret;
ethhdr = eth_hdr(skb); ethhdr = eth_hdr(skb);
if (ntohs(ethhdr->h_proto) == ETH_P_8021Q) { if (ethhdr->h_proto == htons(ETH_P_8021Q)) {
vhdr = (struct vlan_ethhdr *)ethhdr; vhdr = (struct vlan_ethhdr *)ethhdr;
vid = ntohs(vhdr->h_vlan_TCI) & VLAN_VID_MASK; vid = ntohs(vhdr->h_vlan_TCI) & VLAN_VID_MASK;
vid |= BATADV_VLAN_HAS_TAG; vid |= BATADV_VLAN_HAS_TAG;
proto = ntohs(vhdr->h_vlan_encapsulated_proto); proto = vhdr->h_vlan_encapsulated_proto;
headlen = sizeof(*vhdr); headlen = sizeof(*vhdr);
} else { } else {
proto = ntohs(ethhdr->h_proto); proto = ethhdr->h_proto;
headlen = ETH_HLEN; headlen = ETH_HLEN;
} }
if (proto != ETH_P_ARP) if (proto != htons(ETH_P_ARP))
return 0; /* not a claim frame */ return 0; /* not a claim frame */
/* this must be a ARP frame. check if it is a claim. */ /* this must be a ARP frame. check if it is a claim. */
...@@ -1379,7 +1379,7 @@ int batadv_bla_is_backbone_gw(struct sk_buff *skb, ...@@ -1379,7 +1379,7 @@ int batadv_bla_is_backbone_gw(struct sk_buff *skb,
ethhdr = (struct ethhdr *)(((uint8_t *)skb->data) + hdr_size); ethhdr = (struct ethhdr *)(((uint8_t *)skb->data) + hdr_size);
if (ntohs(ethhdr->h_proto) == ETH_P_8021Q) { if (ethhdr->h_proto == htons(ETH_P_8021Q)) {
if (!pskb_may_pull(skb, hdr_size + VLAN_ETH_HLEN)) if (!pskb_may_pull(skb, hdr_size + VLAN_ETH_HLEN))
return 0; return 0;
......
...@@ -716,11 +716,11 @@ bool batadv_gw_is_dhcp_target(struct sk_buff *skb, unsigned int *header_len) ...@@ -716,11 +716,11 @@ bool batadv_gw_is_dhcp_target(struct sk_buff *skb, unsigned int *header_len)
/* check for bootp port */ /* check for bootp port */
if ((proto == htons(ETH_P_IP)) && if ((proto == htons(ETH_P_IP)) &&
(ntohs(udphdr->dest) != 67)) (udphdr->dest != htons(67)))
return false; return false;
if ((proto == htons(ETH_P_IPV6)) && if ((proto == htons(ETH_P_IPV6)) &&
(ntohs(udphdr->dest) != 547)) (udphdr->dest != htons(547)))
return false; return false;
return true; return true;
......
...@@ -379,7 +379,7 @@ int batadv_hardif_enable_interface(struct batadv_hard_iface *hard_iface, ...@@ -379,7 +379,7 @@ int batadv_hardif_enable_interface(struct batadv_hard_iface *hard_iface,
{ {
struct batadv_priv *bat_priv; struct batadv_priv *bat_priv;
struct net_device *soft_iface, *master; struct net_device *soft_iface, *master;
__be16 ethertype = __constant_htons(ETH_P_BATMAN); __be16 ethertype = htons(ETH_P_BATMAN);
int ret; int ret;
if (hard_iface->if_status != BATADV_IF_NOT_IN_USE) if (hard_iface->if_status != BATADV_IF_NOT_IN_USE)
......
...@@ -63,10 +63,10 @@ int batadv_send_skb_packet(struct sk_buff *skb, ...@@ -63,10 +63,10 @@ int batadv_send_skb_packet(struct sk_buff *skb,
ethhdr = eth_hdr(skb); ethhdr = eth_hdr(skb);
memcpy(ethhdr->h_source, hard_iface->net_dev->dev_addr, ETH_ALEN); memcpy(ethhdr->h_source, hard_iface->net_dev->dev_addr, ETH_ALEN);
memcpy(ethhdr->h_dest, dst_addr, ETH_ALEN); memcpy(ethhdr->h_dest, dst_addr, ETH_ALEN);
ethhdr->h_proto = __constant_htons(ETH_P_BATMAN); ethhdr->h_proto = htons(ETH_P_BATMAN);
skb_set_network_header(skb, ETH_HLEN); skb_set_network_header(skb, ETH_HLEN);
skb->protocol = __constant_htons(ETH_P_BATMAN); skb->protocol = htons(ETH_P_BATMAN);
skb->dev = hard_iface->net_dev; skb->dev = hard_iface->net_dev;
......
...@@ -145,7 +145,7 @@ static int batadv_interface_tx(struct sk_buff *skb, ...@@ -145,7 +145,7 @@ static int batadv_interface_tx(struct sk_buff *skb,
struct batadv_hard_iface *primary_if = NULL; struct batadv_hard_iface *primary_if = NULL;
struct batadv_bcast_packet *bcast_packet; struct batadv_bcast_packet *bcast_packet;
struct vlan_ethhdr *vhdr; struct vlan_ethhdr *vhdr;
__be16 ethertype = __constant_htons(ETH_P_BATMAN); __be16 ethertype = htons(ETH_P_BATMAN);
static const uint8_t stp_addr[ETH_ALEN] = {0x01, 0x80, 0xC2, 0x00, static const uint8_t stp_addr[ETH_ALEN] = {0x01, 0x80, 0xC2, 0x00,
0x00, 0x00}; 0x00, 0x00};
static const uint8_t ectp_addr[ETH_ALEN] = {0xCF, 0x00, 0x00, 0x00, static const uint8_t ectp_addr[ETH_ALEN] = {0xCF, 0x00, 0x00, 0x00,
...@@ -312,7 +312,7 @@ void batadv_interface_rx(struct net_device *soft_iface, ...@@ -312,7 +312,7 @@ void batadv_interface_rx(struct net_device *soft_iface,
struct vlan_ethhdr *vhdr; struct vlan_ethhdr *vhdr;
struct batadv_header *batadv_header = (struct batadv_header *)skb->data; struct batadv_header *batadv_header = (struct batadv_header *)skb->data;
unsigned short vid __maybe_unused = BATADV_NO_FLAGS; unsigned short vid __maybe_unused = BATADV_NO_FLAGS;
__be16 ethertype = __constant_htons(ETH_P_BATMAN); __be16 ethertype = htons(ETH_P_BATMAN);
bool is_bcast; bool is_bcast;
is_bcast = (batadv_header->packet_type == BATADV_BCAST); is_bcast = (batadv_header->packet_type == BATADV_BCAST);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment