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
@@ -349,7 +349,7 @@ static void batadv_dbg_arp(struct batadv_priv *bat_priv, struct sk_buff *skb,
|
||||
|
||||
unicast_4addr_packet = (struct batadv_unicast_4addr_packet *)skb->data;
|
||||
|
||||
switch (unicast_4addr_packet->u.header.packet_type) {
|
||||
switch (unicast_4addr_packet->u.packet_type) {
|
||||
case BATADV_UNICAST:
|
||||
batadv_dbg(BATADV_DBG_DAT, bat_priv,
|
||||
"* encapsulated within a UNICAST packet\n");
|
||||
@@ -374,7 +374,7 @@ static void batadv_dbg_arp(struct batadv_priv *bat_priv, struct sk_buff *skb,
|
||||
break;
|
||||
default:
|
||||
batadv_dbg(BATADV_DBG_DAT, bat_priv, "* type: Unknown (%u)!\n",
|
||||
unicast_4addr_packet->u.header.packet_type);
|
||||
unicast_4addr_packet->u.packet_type);
|
||||
}
|
||||
break;
|
||||
case BATADV_BCAST:
|
||||
@@ -387,7 +387,7 @@ static void batadv_dbg_arp(struct batadv_priv *bat_priv, struct sk_buff *skb,
|
||||
default:
|
||||
batadv_dbg(BATADV_DBG_DAT, bat_priv,
|
||||
"* encapsulated within an unknown packet type (0x%x)\n",
|
||||
unicast_4addr_packet->u.header.packet_type);
|
||||
unicast_4addr_packet->u.packet_type);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user