batman-adv: use ETH_HLEN instead of sizeof(struct ethhdr)
Instead of using sizeof(struct ethhdr) it is strongly recommended to use the kernel macro ETH_HLEN. This patch substitute each occurrence of the former expressione with the latter one. Signed-off-by: Antonio Quartulli <ordex@autistici.org>
This commit is contained in:
@@ -355,10 +355,9 @@ static void bat_iv_ogm_aggregate_new(const unsigned char *packet_buff,
|
|||||||
if ((atomic_read(&bat_priv->aggregated_ogms)) &&
|
if ((atomic_read(&bat_priv->aggregated_ogms)) &&
|
||||||
(packet_len < MAX_AGGREGATION_BYTES))
|
(packet_len < MAX_AGGREGATION_BYTES))
|
||||||
forw_packet_aggr->skb = dev_alloc_skb(MAX_AGGREGATION_BYTES +
|
forw_packet_aggr->skb = dev_alloc_skb(MAX_AGGREGATION_BYTES +
|
||||||
sizeof(struct ethhdr));
|
ETH_HLEN);
|
||||||
else
|
else
|
||||||
forw_packet_aggr->skb = dev_alloc_skb(packet_len +
|
forw_packet_aggr->skb = dev_alloc_skb(packet_len + ETH_HLEN);
|
||||||
sizeof(struct ethhdr));
|
|
||||||
|
|
||||||
if (!forw_packet_aggr->skb) {
|
if (!forw_packet_aggr->skb) {
|
||||||
if (!own_packet)
|
if (!own_packet)
|
||||||
@@ -366,7 +365,7 @@ static void bat_iv_ogm_aggregate_new(const unsigned char *packet_buff,
|
|||||||
kfree(forw_packet_aggr);
|
kfree(forw_packet_aggr);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
skb_reserve(forw_packet_aggr->skb, sizeof(struct ethhdr));
|
skb_reserve(forw_packet_aggr->skb, ETH_HLEN);
|
||||||
|
|
||||||
INIT_HLIST_NODE(&forw_packet_aggr->list);
|
INIT_HLIST_NODE(&forw_packet_aggr->list);
|
||||||
|
|
||||||
|
@@ -290,9 +290,7 @@ static void bla_send_claim(struct bat_priv *bat_priv, uint8_t *mac,
|
|||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
ethhdr = (struct ethhdr *)skb->data;
|
ethhdr = (struct ethhdr *)skb->data;
|
||||||
hw_src = (uint8_t *)ethhdr +
|
hw_src = (uint8_t *)ethhdr + ETH_HLEN + sizeof(struct arphdr);
|
||||||
sizeof(struct ethhdr) +
|
|
||||||
sizeof(struct arphdr);
|
|
||||||
|
|
||||||
/* now we pretend that the client would have sent this ... */
|
/* now we pretend that the client would have sent this ... */
|
||||||
switch (claimtype) {
|
switch (claimtype) {
|
||||||
@@ -340,7 +338,7 @@ static void bla_send_claim(struct bat_priv *bat_priv, uint8_t *mac,
|
|||||||
skb_reset_mac_header(skb);
|
skb_reset_mac_header(skb);
|
||||||
skb->protocol = eth_type_trans(skb, soft_iface);
|
skb->protocol = eth_type_trans(skb, soft_iface);
|
||||||
bat_priv->stats.rx_packets++;
|
bat_priv->stats.rx_packets++;
|
||||||
bat_priv->stats.rx_bytes += skb->len + sizeof(struct ethhdr);
|
bat_priv->stats.rx_bytes += skb->len + ETH_HLEN;
|
||||||
soft_iface->last_rx = jiffies;
|
soft_iface->last_rx = jiffies;
|
||||||
|
|
||||||
netif_rx(skb);
|
netif_rx(skb);
|
||||||
@@ -844,7 +842,7 @@ static int bla_process_claim(struct bat_priv *bat_priv,
|
|||||||
headlen = sizeof(*vhdr);
|
headlen = sizeof(*vhdr);
|
||||||
} else {
|
} else {
|
||||||
proto = ntohs(ethhdr->h_proto);
|
proto = ntohs(ethhdr->h_proto);
|
||||||
headlen = sizeof(*ethhdr);
|
headlen = ETH_HLEN;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (proto != ETH_P_ARP)
|
if (proto != ETH_P_ARP)
|
||||||
@@ -1302,7 +1300,7 @@ int bla_is_backbone_gw(struct sk_buff *skb,
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* first, find out the vid. */
|
/* first, find out the vid. */
|
||||||
if (!pskb_may_pull(skb, hdr_size + sizeof(struct ethhdr)))
|
if (!pskb_may_pull(skb, hdr_size + ETH_HLEN))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
ethhdr = (struct ethhdr *)(((uint8_t *)skb->data) + hdr_size);
|
ethhdr = (struct ethhdr *)(((uint8_t *)skb->data) + hdr_size);
|
||||||
|
@@ -574,8 +574,7 @@ static int batman_skb_recv(struct sk_buff *skb, struct net_device *dev,
|
|||||||
goto err_free;
|
goto err_free;
|
||||||
|
|
||||||
/* expect a valid ethernet header here. */
|
/* expect a valid ethernet header here. */
|
||||||
if (unlikely(skb->mac_len != sizeof(struct ethhdr) ||
|
if (unlikely(skb->mac_len != ETH_HLEN || !skb_mac_header(skb)))
|
||||||
!skb_mac_header(skb)))
|
|
||||||
goto err_free;
|
goto err_free;
|
||||||
|
|
||||||
if (!hard_iface->soft_iface)
|
if (!hard_iface->soft_iface)
|
||||||
|
@@ -175,13 +175,13 @@ static ssize_t bat_socket_write(struct file *file, const char __user *buff,
|
|||||||
if (len >= sizeof(struct icmp_packet_rr))
|
if (len >= sizeof(struct icmp_packet_rr))
|
||||||
packet_len = sizeof(struct icmp_packet_rr);
|
packet_len = sizeof(struct icmp_packet_rr);
|
||||||
|
|
||||||
skb = dev_alloc_skb(packet_len + sizeof(struct ethhdr));
|
skb = dev_alloc_skb(packet_len + ETH_HLEN);
|
||||||
if (!skb) {
|
if (!skb) {
|
||||||
len = -ENOMEM;
|
len = -ENOMEM;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
skb_reserve(skb, sizeof(struct ethhdr));
|
skb_reserve(skb, ETH_HLEN);
|
||||||
icmp_packet = (struct icmp_packet_rr *)skb_put(skb, packet_len);
|
icmp_packet = (struct icmp_packet_rr *)skb_put(skb, packet_len);
|
||||||
|
|
||||||
if (copy_from_user(icmp_packet, buff, packet_len)) {
|
if (copy_from_user(icmp_packet, buff, packet_len)) {
|
||||||
|
@@ -313,7 +313,7 @@ static int recv_my_icmp_packet(struct bat_priv *bat_priv,
|
|||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
/* create a copy of the skb, if needed, to modify it. */
|
/* create a copy of the skb, if needed, to modify it. */
|
||||||
if (skb_cow(skb, sizeof(struct ethhdr)) < 0)
|
if (skb_cow(skb, ETH_HLEN) < 0)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
icmp_packet = (struct icmp_packet_rr *)skb->data;
|
icmp_packet = (struct icmp_packet_rr *)skb->data;
|
||||||
@@ -368,7 +368,7 @@ static int recv_icmp_ttl_exceeded(struct bat_priv *bat_priv,
|
|||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
/* create a copy of the skb, if needed, to modify it. */
|
/* create a copy of the skb, if needed, to modify it. */
|
||||||
if (skb_cow(skb, sizeof(struct ethhdr)) < 0)
|
if (skb_cow(skb, ETH_HLEN) < 0)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
icmp_packet = (struct icmp_packet *)skb->data;
|
icmp_packet = (struct icmp_packet *)skb->data;
|
||||||
@@ -454,7 +454,7 @@ int recv_icmp_packet(struct sk_buff *skb, struct hard_iface *recv_if)
|
|||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
/* create a copy of the skb, if needed, to modify it. */
|
/* create a copy of the skb, if needed, to modify it. */
|
||||||
if (skb_cow(skb, sizeof(struct ethhdr)) < 0)
|
if (skb_cow(skb, ETH_HLEN) < 0)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
icmp_packet = (struct icmp_packet_rr *)skb->data;
|
icmp_packet = (struct icmp_packet_rr *)skb->data;
|
||||||
@@ -841,7 +841,7 @@ static int route_unicast_packet(struct sk_buff *skb, struct hard_iface *recv_if)
|
|||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
/* create a copy of the skb, if needed, to modify it. */
|
/* create a copy of the skb, if needed, to modify it. */
|
||||||
if (skb_cow(skb, sizeof(struct ethhdr)) < 0)
|
if (skb_cow(skb, ETH_HLEN) < 0)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
unicast_packet = (struct unicast_packet *)skb->data;
|
unicast_packet = (struct unicast_packet *)skb->data;
|
||||||
|
@@ -51,7 +51,7 @@ int send_skb_packet(struct sk_buff *skb, struct hard_iface *hard_iface,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* push to the ethernet header. */
|
/* push to the ethernet header. */
|
||||||
if (my_skb_head_push(skb, sizeof(*ethhdr)) < 0)
|
if (my_skb_head_push(skb, ETH_HLEN) < 0)
|
||||||
goto send_skb_err;
|
goto send_skb_err;
|
||||||
|
|
||||||
skb_reset_mac_header(skb);
|
skb_reset_mac_header(skb);
|
||||||
|
@@ -292,7 +292,7 @@ void interface_rx(struct net_device *soft_iface,
|
|||||||
/* skb->ip_summed = CHECKSUM_UNNECESSARY;*/
|
/* skb->ip_summed = CHECKSUM_UNNECESSARY;*/
|
||||||
|
|
||||||
bat_priv->stats.rx_packets++;
|
bat_priv->stats.rx_packets++;
|
||||||
bat_priv->stats.rx_bytes += skb->len + sizeof(struct ethhdr);
|
bat_priv->stats.rx_bytes += skb->len + ETH_HLEN;
|
||||||
|
|
||||||
soft_iface->last_rx = jiffies;
|
soft_iface->last_rx = jiffies;
|
||||||
|
|
||||||
|
@@ -27,7 +27,7 @@
|
|||||||
#include "packet.h"
|
#include "packet.h"
|
||||||
#include "bitarray.h"
|
#include "bitarray.h"
|
||||||
|
|
||||||
#define BAT_HEADER_LEN (sizeof(struct ethhdr) + \
|
#define BAT_HEADER_LEN (ETH_HLEN + \
|
||||||
((sizeof(struct unicast_packet) > sizeof(struct bcast_packet) ? \
|
((sizeof(struct unicast_packet) > sizeof(struct bcast_packet) ? \
|
||||||
sizeof(struct unicast_packet) : \
|
sizeof(struct unicast_packet) : \
|
||||||
sizeof(struct bcast_packet))))
|
sizeof(struct bcast_packet))))
|
||||||
|
@@ -434,12 +434,12 @@ static struct vis_info *add_packet(struct bat_priv *bat_priv,
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
info->skb_packet = dev_alloc_skb(sizeof(*packet) + vis_info_len +
|
info->skb_packet = dev_alloc_skb(sizeof(*packet) + vis_info_len +
|
||||||
sizeof(struct ethhdr));
|
ETH_HLEN);
|
||||||
if (!info->skb_packet) {
|
if (!info->skb_packet) {
|
||||||
kfree(info);
|
kfree(info);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
skb_reserve(info->skb_packet, sizeof(struct ethhdr));
|
skb_reserve(info->skb_packet, ETH_HLEN);
|
||||||
packet = (struct vis_packet *)skb_put(info->skb_packet, sizeof(*packet)
|
packet = (struct vis_packet *)skb_put(info->skb_packet, sizeof(*packet)
|
||||||
+ vis_info_len);
|
+ vis_info_len);
|
||||||
|
|
||||||
@@ -894,11 +894,11 @@ int vis_init(struct bat_priv *bat_priv)
|
|||||||
|
|
||||||
bat_priv->my_vis_info->skb_packet = dev_alloc_skb(sizeof(*packet) +
|
bat_priv->my_vis_info->skb_packet = dev_alloc_skb(sizeof(*packet) +
|
||||||
MAX_VIS_PACKET_SIZE +
|
MAX_VIS_PACKET_SIZE +
|
||||||
sizeof(struct ethhdr));
|
ETH_HLEN);
|
||||||
if (!bat_priv->my_vis_info->skb_packet)
|
if (!bat_priv->my_vis_info->skb_packet)
|
||||||
goto free_info;
|
goto free_info;
|
||||||
|
|
||||||
skb_reserve(bat_priv->my_vis_info->skb_packet, sizeof(struct ethhdr));
|
skb_reserve(bat_priv->my_vis_info->skb_packet, ETH_HLEN);
|
||||||
packet = (struct vis_packet *)skb_put(bat_priv->my_vis_info->skb_packet,
|
packet = (struct vis_packet *)skb_put(bat_priv->my_vis_info->skb_packet,
|
||||||
sizeof(*packet));
|
sizeof(*packet));
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user