]> Pileus Git - ~andy/linux/commitdiff
batman-adv: fix tt_global_entries flags update
authorAntonio Quartulli <ordex@autistici.org>
Wed, 7 Nov 2012 14:05:33 +0000 (15:05 +0100)
committerAntonio Quartulli <ordex@autistici.org>
Fri, 16 Nov 2012 08:28:03 +0000 (09:28 +0100)
Flags carried by a change_entry have to be always copied into the
client entry as they may contain important attributes (e.g.
TT_CLIENT_WIFI).

For instance, a client added by means of the "early detection
mechanism" has no flag set at the beginning, so they must be updated once the
proper ADD event is received.

This was introduced by 30cfd02b60e1cb16f5effb0a01f826c5bb7e4c59
("batman-adv: detect not yet announced clients")

Signed-off-by: Antonio Quartulli <ordex@autistici.org>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
net/batman-adv/translation-table.c

index 112edd371b2f81c79f431c6e99402165405c1b10..64c00120c9f02a6420dfcba7c67dcea79babc1b6 100644 (file)
@@ -769,6 +769,12 @@ int batadv_tt_global_add(struct batadv_priv *bat_priv,
                 */
                tt_global_entry->common.flags &= ~BATADV_TT_CLIENT_TEMP;
 
+               /* the change can carry possible "attribute" flags like the
+                * TT_CLIENT_WIFI, therefore they have to be copied in the
+                * client entry
+                */
+               tt_global_entry->common.flags |= flags;
+
                /* If there is the BATADV_TT_CLIENT_ROAM flag set, there is only
                 * one originator left in the list and we previously received a
                 * delete + roaming change for this originator.