You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
batman-adv: fix header alignment by unrolling batadv_header
The size of the batadv_header of 3 is problematic on some architectures which automatically pad all structures to a 32 bit boundary. To not lose performance by packing this struct, better embed it into the various host structures. Reported-by: Russell King <linux@arm.linux.org.uk> Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de> Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch> Signed-off-by: Antonio Quartulli <antonio@meshcoding.com>
This commit is contained in:
committed by
Antonio Quartulli
parent
46b76e0b8b
commit
a40d9b075c
@@ -355,7 +355,7 @@ bool batadv_frag_skb_fwd(struct sk_buff *skb,
|
||||
batadv_add_counter(bat_priv, BATADV_CNT_FRAG_FWD_BYTES,
|
||||
skb->len + ETH_HLEN);
|
||||
|
||||
packet->header.ttl--;
|
||||
packet->ttl--;
|
||||
batadv_send_skb_packet(skb, neigh_node->if_incoming,
|
||||
neigh_node->addr);
|
||||
ret = true;
|
||||
@@ -444,9 +444,9 @@ bool batadv_frag_send_packet(struct sk_buff *skb,
|
||||
goto out_err;
|
||||
|
||||
/* Create one header to be copied to all fragments */
|
||||
frag_header.header.packet_type = BATADV_UNICAST_FRAG;
|
||||
frag_header.header.version = BATADV_COMPAT_VERSION;
|
||||
frag_header.header.ttl = BATADV_TTL;
|
||||
frag_header.packet_type = BATADV_UNICAST_FRAG;
|
||||
frag_header.version = BATADV_COMPAT_VERSION;
|
||||
frag_header.ttl = BATADV_TTL;
|
||||
frag_header.seqno = htons(atomic_inc_return(&bat_priv->frag_seqno));
|
||||
frag_header.reserved = 0;
|
||||
frag_header.no = 0;
|
||||
|
||||
Reference in New Issue
Block a user