diff options
author | Antonio Quartulli <antonio@meshcoding.com> | 2013-12-15 13:26:55 +0100 |
---|---|---|
committer | Antonio Quartulli <antonio@meshcoding.com> | 2013-12-28 12:51:18 +0100 |
commit | ca6630464454d74ae1d430e99007a1139f4a2aba (patch) | |
tree | 834ee00d9f3ee7d1fd62840c0da3982ca71f9017 /net/batman-adv | |
parent | 2f7a318219186485c175339758ac42a03644200b (diff) | |
download | op-kernel-dev-ca6630464454d74ae1d430e99007a1139f4a2aba.zip op-kernel-dev-ca6630464454d74ae1d430e99007a1139f4a2aba.tar.gz |
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/batman-adv')
-rw-r--r-- | net/batman-adv/packet.h | 4 | ||||
-rw-r--r-- | net/batman-adv/translation-table.c | 6 |
2 files changed, 6 insertions, 4 deletions
diff --git a/net/batman-adv/packet.h b/net/batman-adv/packet.h index 04cf27c..2dd8f24 100644 --- a/net/batman-adv/packet.h +++ b/net/batman-adv/packet.h @@ -484,13 +484,13 @@ struct batadv_tvlv_tt_vlan_data { * struct batadv_tvlv_tt_change - translation table diff data * @flags: status indicators concerning the non-mesh client (see * batadv_tt_client_flags) - * @reserved: reserved field + * @reserved: reserved field - useful for alignment purposes only * @addr: mac address of non-mesh client that triggered this tt change * @vid: VLAN identifier */ struct batadv_tvlv_tt_change { uint8_t flags; - uint8_t reserved; + uint8_t reserved[3]; uint8_t addr[ETH_ALEN]; __be16 vid; }; diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c index 4add57d..ff625fe 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, return; tt_change_node->change.flags = flags; - tt_change_node->change.reserved = 0; + memset(tt_change_node->change.reserved, 0, + sizeof(tt_change_node->change.reserved)); memcpy(tt_change_node->change.addr, common->addr, ETH_ALEN); tt_change_node->change.vid = htons(common->vid); @@ -2221,7 +2222,8 @@ static void batadv_tt_tvlv_generate(struct batadv_priv *bat_priv, ETH_ALEN); tt_change->flags = tt_common_entry->flags; tt_change->vid = htons(tt_common_entry->vid); - tt_change->reserved = 0; + memset(tt_change->reserved, 0, + sizeof(tt_change->reserved)); tt_num_entries++; tt_change++; |