aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorAntonio Quartulli <antonio@meshcoding.com>2013-12-15 07:26:55 -0500
committerAntonio Quartulli <antonio@meshcoding.com>2013-12-28 06:51:18 -0500
commitca6630464454d74ae1d430e99007a1139f4a2aba (patch)
tree834ee00d9f3ee7d1fd62840c0da3982ca71f9017 /net
parent2f7a318219186485c175339758ac42a03644200b (diff)
batman-adv: fix alignment for batadv_tvlv_tt_change
Make struct batadv_tvlv_tt_change a multiple 4 bytes long to avoid padding on any architecture. Signed-off-by: Antonio Quartulli <antonio@meshcoding.com> Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
Diffstat (limited to 'net')
-rw-r--r--net/batman-adv/packet.h4
-rw-r--r--net/batman-adv/translation-table.c6
2 files changed, 6 insertions, 4 deletions
diff --git a/net/batman-adv/packet.h b/net/batman-adv/packet.h
index 04cf27ca5dee..2dd8f2422550 100644
--- a/net/batman-adv/packet.h
+++ b/net/batman-adv/packet.h
@@ -484,13 +484,13 @@ struct batadv_tvlv_tt_vlan_data {
484 * struct batadv_tvlv_tt_change - translation table diff data 484 * struct batadv_tvlv_tt_change - translation table diff data
485 * @flags: status indicators concerning the non-mesh client (see 485 * @flags: status indicators concerning the non-mesh client (see
486 * batadv_tt_client_flags) 486 * batadv_tt_client_flags)
487 * @reserved: reserved field 487 * @reserved: reserved field - useful for alignment purposes only
488 * @addr: mac address of non-mesh client that triggered this tt change 488 * @addr: mac address of non-mesh client that triggered this tt change
489 * @vid: VLAN identifier 489 * @vid: VLAN identifier
490 */ 490 */
491struct batadv_tvlv_tt_change { 491struct batadv_tvlv_tt_change {
492 uint8_t flags; 492 uint8_t flags;
493 uint8_t reserved; 493 uint8_t reserved[3];
494 uint8_t addr[ETH_ALEN]; 494 uint8_t addr[ETH_ALEN];
495 __be16 vid; 495 __be16 vid;
496}; 496};
diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index 4add57d4857f..ff625fedbc5e 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -333,7 +333,8 @@ static void batadv_tt_local_event(struct batadv_priv *bat_priv,
333 return; 333 return;
334 334
335 tt_change_node->change.flags = flags; 335 tt_change_node->change.flags = flags;
336 tt_change_node->change.reserved = 0; 336 memset(tt_change_node->change.reserved, 0,
337 sizeof(tt_change_node->change.reserved));
337 memcpy(tt_change_node->change.addr, common->addr, ETH_ALEN); 338 memcpy(tt_change_node->change.addr, common->addr, ETH_ALEN);
338 tt_change_node->change.vid = htons(common->vid); 339 tt_change_node->change.vid = htons(common->vid);
339 340
@@ -2221,7 +2222,8 @@ static void batadv_tt_tvlv_generate(struct batadv_priv *bat_priv,
2221 ETH_ALEN); 2222 ETH_ALEN);
2222 tt_change->flags = tt_common_entry->flags; 2223 tt_change->flags = tt_common_entry->flags;
2223 tt_change->vid = htons(tt_common_entry->vid); 2224 tt_change->vid = htons(tt_common_entry->vid);
2224 tt_change->reserved = 0; 2225 memset(tt_change->reserved, 0,
2226 sizeof(tt_change->reserved));
2225 2227
2226 tt_num_entries++; 2228 tt_num_entries++;
2227 tt_change++; 2229 tt_change++;