<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.org.freifunk.batman">
    <title>gmane.org.freifunk.batman</title>
    <link>http://blog.gmane.org/gmane.org.freifunk.batman</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/7197"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/7196"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/7195"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/7194"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/7193"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/7192"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/7191"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/7190"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/7189"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/7188"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/7187"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/7186"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/7185"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/7184"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/7183"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/7182"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/7181"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/7180"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/7179"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.org.freifunk.batman/7178"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/7197">
    <title>[PATCH] batman-adv: Use batctl indentation ofbat_packettype</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/7197</link>
    <description>&lt;pre&gt;The style of the indentation was changed in
206af118414355e867e725ea83bc3a2989db5a40

Signed-off-by: Sven Eckelmann &amp;lt;sven-KaDOiPu9UxWEi8DpZVb4nw&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 packet.h |   14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/packet.h b/packet.h
index 205879e..c90219c 100644
--- a/packet.h
+++ b/packet.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -23,14 +23,14 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #define ETH_P_BATMAN  0x4305/* unofficial/not registered Ethertype */
 
 enum bat_packettype {
-BAT_IV_OGM       = 0x01,
-BAT_ICMP         = 0x02,
-BAT_UNICAST      = 0x03,
-BAT_BCAST        = 0x04,
-BAT_VIS          = 0x05,
+BAT_IV_OGM = 0x01,
+BAT_ICMP = 0x02,
+BAT_UNICAST = 0x03,
+BAT_BCAST = 0x04,
+BAT_VIS = 0x05,
 BAT_UNICAST_FRAG = 0x06,
-BAT_TT_QUERY     = 0x07,
-BAT_ROAM_ADV     = 0x08
+BAT_TT_QUERY = 0x07,
+BAT_ROAM_ADV = 0x08
 };
 
 /* this file is included by batctl which needs these defines */
&lt;/pre&gt;</description>
    <dc:creator>Sven Eckelmann</dc:creator>
    <dc:date>2012-05-25T06:55:55</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/7196">
    <title>[PATCHv2] batman-adv: beautify tt_global_add()argument list</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/7196</link>
    <description>&lt;pre&gt;Instead of adding a new bool argument each time it is needed, it is better (and
simpler) to pass an 8bit flag argument which contains all the needed flags

Signed-off-by: Antonio Quartulli &amp;lt;ordex-GaUfNO9RBHfsrOwW+9ziJQ&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---

changes in v2:
- rebased on top of the last patches for code restyling

 routing.c           |    4 ++--
 translation-table.c |   24 +++++++++---------------
 translation-table.h |    4 ++--
 3 files changed, 13 insertions(+), 19 deletions(-)

diff --git a/routing.c b/routing.c
index c3160be..1260253 100644
--- a/routing.c
+++ b/routing.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -697,8 +697,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; int batadv_recv_roam_adv(struct sk_buff *skb, struct hard_iface *recv_if)
    roam_adv_packet-&amp;gt;src, roam_adv_packet-&amp;gt;client);
 
 batadv_tt_global_add(bat_priv, orig_node, roam_adv_packet-&amp;gt;client,
-     atomic_read(&amp;amp;orig_node-&amp;gt;last_ttvn) + 1, true,
-     false);
+     TT_CLIENT_ROAM,
+     atomic_read(&amp;amp;orig_node-&amp;gt;last_ttvn) + 1);
 
 /* Roaming phase starts: I have new information but the ttvn has not
  * been incremented yet. This flag will make me check all the incoming
diff --git a/translation-table.c b/translation-table.c
index 2c8266a..c03c479 100644
--- a/translation-table.c
+++ b/translation-table.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -656,8 +656,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; batadv_tt_global_add_orig_entry(struct tt_global_entry *tt_global_entry,
 
 /* caller must hold orig_node refcount */
 int batadv_tt_global_add(struct bat_priv *bat_priv, struct orig_node *orig_node,
- const unsigned char *tt_addr, uint8_t ttvn,
- bool roaming, bool wifi)
+ const unsigned char *tt_addr, uint8_t flags,
+ uint8_t ttvn)
 {
 struct tt_global_entry *tt_global_entry = NULL;
 int ret = 0;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -667,15 +667,14 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; int batadv_tt_global_add(struct bat_priv *bat_priv, struct orig_node *orig_node,
 tt_global_entry = batadv_tt_global_hash_find(bat_priv, tt_addr);
 
 if (!tt_global_entry) {
-tt_global_entry = kzalloc(sizeof(*tt_global_entry),
-  GFP_ATOMIC);
+tt_global_entry = kzalloc(sizeof(*tt_global_entry), GFP_ATOMIC);
 if (!tt_global_entry)
 goto out;
 
 common = &amp;amp;tt_global_entry-&amp;gt;common;
 memcpy(common-&amp;gt;addr, tt_addr, ETH_ALEN);
 
-common-&amp;gt;flags = NO_FLAGS;
+common-&amp;gt;flags = flags;
 tt_global_entry-&amp;gt;roam_at = 0;
 atomic_set(&amp;amp;common-&amp;gt;refcount, 2);
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -717,9 +716,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; int batadv_tt_global_add(struct bat_priv *bat_priv, struct orig_node *orig_node,
 orig_node, ttvn);
 }
 
-if (wifi)
-tt_global_entry-&amp;gt;common.flags |= TT_CLIENT_WIFI;
-
 batadv_dbg(DBG_TT, bat_priv,
    "Creating new global tt entry: %pM (via %pM)\n",
    tt_global_entry-&amp;gt;common.addr, orig_node-&amp;gt;orig);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -727,7 +723,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; int batadv_tt_global_add(struct bat_priv *bat_priv, struct orig_node *orig_node,
 out_remove:
 /* remove address from local hash if present */
 batadv_tt_local_remove(bat_priv, tt_global_entry-&amp;gt;common.addr,
-       "global tt received", roaming);
+       "global tt received", flags &amp;amp; TT_CLIENT_ROAM);
 ret = 1;
 out:
 if (tt_global_entry)
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1755,7 +1751,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void _batadv_tt_update_changes(struct bat_priv *bat_priv,
       uint16_t tt_num_changes, uint8_t ttvn)
 {
 int i;
-int is_wifi;
 int roams;
 
 for (i = 0; i &amp;lt; tt_num_changes; i++) {
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1763,13 +1758,12 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void _batadv_tt_update_changes(struct bat_priv *bat_priv,
 roams = (tt_change + i)-&amp;gt;flags &amp;amp; TT_CLIENT_ROAM;
 batadv_tt_global_del(bat_priv, orig_node,
      (tt_change + i)-&amp;gt;addr,
-      "tt removed by changes",
-      roams);
+     "tt removed by changes",
+     roams);
 } else {
-is_wifi = (tt_change + i)-&amp;gt;flags &amp;amp; TT_CLIENT_WIFI;
 if (!batadv_tt_global_add(bat_priv, orig_node,
-  (tt_change + i)-&amp;gt;addr, ttvn,
-  false, is_wifi))
+  (tt_change + i)-&amp;gt;addr,
+  (tt_change + i)-&amp;gt;flags, ttvn))
 /* In case of problem while storing a
  * global_entry, we stop the updating
  * procedure without committing the
diff --git a/translation-table.h b/translation-table.h
index 7edc9df..46b60bd 100644
--- a/translation-table.h
+++ b/translation-table.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -32,8 +32,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void batadv_tt_global_add_orig(struct bat_priv *bat_priv,
        struct orig_node *orig_node,
        const unsigned char *tt_buff, int tt_buff_len);
 int batadv_tt_global_add(struct bat_priv *bat_priv, struct orig_node *orig_node,
- const unsigned char *addr, uint8_t ttvn, bool roaming,
- bool wifi);
+ const unsigned char *addr, uint8_t flags,
+ uint8_t ttvn);
 int batadv_tt_global_seq_print_text(struct seq_file *seq, void *offset);
 void batadv_tt_global_del_orig(struct bat_priv *bat_priv,
        struct orig_node *orig_node,
&lt;/pre&gt;</description>
    <dc:creator>Antonio Quartulli</dc:creator>
    <dc:date>2012-05-24T22:00:54</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/7195">
    <title>[PATCHv3] batman-adv: clear ADD+DEL (and viceversa)events in the same orig-interval</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/7195</link>
    <description>&lt;pre&gt;During an OGM-interval (time between two different OGM sendings) the same client
could roam away and then roam back to us. In this case the node would add two
events to the events list (that is going to be sent appended to the next OGM). A
DEL one and an ADD one. Obviously they will only increase the overhead (either in
the air and on the receiver side) and eventually trigger wrong states/events
without producing any real effect.

For this reason we can safely delete any ADD event with its related DEL one.

Signed-off-by: Antonio Quartulli &amp;lt;ordex-GaUfNO9RBHfsrOwW+9ziJQ&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---

changes in v3:
- rebased on top of the last patches for code restyling

 translation-table.c |   40 +++++++++++++++++++++++++++++++++++++---
 1 file changed, 37 insertions(+), 3 deletions(-)

diff --git a/translation-table.c b/translation-table.c
index cb1d3a8..2c8266a 100644
--- a/translation-table.c
+++ b/translation-table.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -156,7 +156,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; batadv_tt_orig_list_entry_free_ref(struct tt_orig_list_entry *orig_entry)
 static void batadv_tt_local_event(struct bat_priv *bat_priv,
   const uint8_t *addr, uint8_t flags)
 {
-struct tt_change_node *tt_change_node;
+struct tt_change_node *tt_change_node, *entry, *safe;
+bool event_removed = false;
+bool del_op_requested, del_op_entry;
 
 tt_change_node = kmalloc(sizeof(*tt_change_node), GFP_ATOMIC);
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -166,13 +168,45 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void batadv_tt_local_event(struct bat_priv *bat_priv,
 tt_change_node-&amp;gt;change.flags = flags;
 memcpy(tt_change_node-&amp;gt;change.addr, addr, ETH_ALEN);
 
+del_op_requested = flags &amp;amp; TT_CLIENT_DEL;
+
+/* check for ADD+DEL or DEL+ADD events */
 spin_lock_bh(&amp;amp;bat_priv-&amp;gt;tt_changes_list_lock);
+list_for_each_entry_safe(entry, safe, &amp;amp;bat_priv-&amp;gt;tt_changes_list,
+ list) {
+if (!batadv_compare_eth(entry-&amp;gt;change.addr, addr))
+continue;
+
+/* DEL+ADD in the same orig interval have no effect and can be
+ * removed to avoid silly behaviour on the receiver side. The
+ * other way around (ADD+DEL) can happen in case of roaming of
+ * a client still in the NEW state. Roaming of NEW clients is
+ * now possible due to automatically recognition of "temporary"
+ * clients
+ */
+del_op_entry = entry-&amp;gt;change.flags &amp;amp; TT_CLIENT_DEL;
+if (!del_op_requested &amp;amp;&amp;amp; del_op_entry)
+goto del;
+if (del_op_requested &amp;amp;&amp;amp; !del_op_entry)
+goto del;
+continue;
+del:
+list_del(&amp;amp;entry-&amp;gt;list);
+kfree(entry);
+event_removed = true;
+goto unlock;
+}
+
 /* track the change in the OGMinterval list */
 list_add_tail(&amp;amp;tt_change_node-&amp;gt;list, &amp;amp;bat_priv-&amp;gt;tt_changes_list);
-atomic_inc(&amp;amp;bat_priv-&amp;gt;tt_local_changes);
+
+unlock:
 spin_unlock_bh(&amp;amp;bat_priv-&amp;gt;tt_changes_list_lock);
 
-atomic_set(&amp;amp;bat_priv-&amp;gt;tt_ogm_append_cnt, 0);
+if (event_removed)
+atomic_dec(&amp;amp;bat_priv-&amp;gt;tt_local_changes);
+else
+atomic_inc(&amp;amp;bat_priv-&amp;gt;tt_local_changes);
 }
 
 int batadv_tt_len(int changes_num)
&lt;/pre&gt;</description>
    <dc:creator>Antonio Quartulli</dc:creator>
    <dc:date>2012-05-24T22:00:42</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/7194">
    <title>Re: [PATCH 06/15] batman-adv: Distributed ARP Table - add snooping functions for ARP messages</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/7194</link>
    <description>&lt;pre&gt;Hey David,

thanks for your answer,

On Thu, May 24, 2012 at 01:54:57AM -0400, David Miller wrote:

well, thats pretty much answers it. If we must not use ARP or neighbour
internals, even after your rewrite (?), we have to come up with an alternative
in any case (write our own backened).

We don't expect you to come up with an alternative implementation, but
as you are the one accepting the patches (or not) we need to know why
you decline something and what the problem is so we ca n work around
or improve.

Thanks
Simon
&lt;/pre&gt;</description>
    <dc:creator>Simon Wunderlich</dc:creator>
    <dc:date>2012-05-24T08:09:55</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/7193">
    <title>Re: [PATCH 06/15] batman-adv: Distributed ARP Table - add snooping functions for ARP messages</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/7193</link>
    <description>&lt;pre&gt;From: Sven Eckelmann &amp;lt;sven-KaDOiPu9UxWEi8DpZVb4nw&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
Date: Thu, 24 May 2012 07:34:12 +0200


If I say that you must not use ARP nor neighbour layer internals, it
doesn't mean that I have to come up with the alternative
implementation for you.

Now, you can ask others on the netdev list for suggestions, but you
can't expect me to be the direct and only responder on things like
that.

&lt;/pre&gt;</description>
    <dc:creator>David Miller</dc:creator>
    <dc:date>2012-05-24T05:54:57</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/7192">
    <title>Re: [PATCH 06/15] batman-adv: Distributed ARP Table- add snooping functions for ARP messages</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/7192</link>
    <description>&lt;pre&gt;
_You_ were the person that declined the pull request because _you_ wanted to 
rewrite the ARP handling. So _you_ are the person that has the insight in 
_your_ plans. Either _you_ tell us what is _your_ problem with it or _you_ 
will have to point us to a person that knows _you_.

Until now nobody stepped up (the mails were public visible to the netdev 
people). But I will ask ask Antonio to send a separate mail to netdev and 
recent arp.c commiter.

Thanks,
Sven&lt;/pre&gt;</description>
    <dc:creator>Sven Eckelmann</dc:creator>
    <dc:date>2012-05-24T05:34:12</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/7191">
    <title>Re: [PATCH 06/15] batman-adv: Distributed ARP Table - add snooping functions for ARP messages</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/7191</link>
    <description>&lt;pre&gt;
It can't be all on me to answer your question, I cannot be
the choke point.

You must lean on the entire networking developer community
for help, otherwise it simply will not scale.

&lt;/pre&gt;</description>
    <dc:creator>David Miller</dc:creator>
    <dc:date>2012-05-23T23:01:58</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/7190">
    <title>Re: [PATCH 06/15] batman-adv: Distributed ARP Table - add snooping functions for ARP messages</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/7190</link>
    <description>&lt;pre&gt;Hello David, 

we are a little bit in a pinch here - the DAT feature sent with this
patchset was developed for a long time, and we need your decision to move on
as more and more patches depend on it:

 * should we rewrite DAT to use our own ARP table/backend or
 * can we use the ARP neighbor table in another way, maybe after your changes?

We thought that re-using existing infrastructure would be smarter, but if
you disagree, please tell us so - we would like to get this feature finally
upstream and need your input to make the neccesary changes.

Thanks
Simon


On Thu, May 17, 2012 at 07:53:54PM +0800, Marek Lindner wrote:
&lt;/pre&gt;</description>
    <dc:creator>Simon Wunderlich</dc:creator>
    <dc:date>2012-05-23T21:48:02</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/7189">
    <title>Re: [PATCHv2] batman-adv: Remove batadv_ vararginline functions</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/7189</link>
    <description>&lt;pre&gt;
Applied in revision dfacdc0.

Thanks,
Marek

&lt;/pre&gt;</description>
    <dc:creator>Marek Lindner</dc:creator>
    <dc:date>2012-05-22T04:43:06</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/7188">
    <title>[PATCHv2] batman-adv: Remove batadv_ vararg inlinefunctions</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/7188</link>
    <description>&lt;pre&gt;gcc doesn't support the inlining of functions using vararg. Sparse fails to
build the source when having such functions marked using the keyword "inline".

This problem was introduced in 3b896e321c49e3cbbfd540f537c007db883c3900

Signed-off-by: Sven Eckelmann &amp;lt;sven-KaDOiPu9UxWEi8DpZVb4nw&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
I've decided that we should it revert for now and hope for a better solution in
the future. The old patch didn't worked at all for .._DEBUG=y all builds.

 bat_debugfs.c |    5 ++++-
 main.h        |   39 +++++++++++++--------------------------
 2 files changed, 17 insertions(+), 27 deletions(-)

diff --git a/bat_debugfs.c b/bat_debugfs.c
index c3f7e2f..87349f4 100644
--- a/bat_debugfs.c
+++ b/bat_debugfs.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -74,13 +74,16 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int batadv_fdebug_log(struct debug_log *debug_log, const char *fmt, ...)
 return 0;
 }
 
-int batadv_debug_log(struct bat_priv *bat_priv, const char *fmt, va_list args)
+int batadv_debug_log(struct bat_priv *bat_priv, const char *fmt, ...)
 {
+va_list args;
 char tmp_log_buf[256];
 
+va_start(args, fmt);
 vscnprintf(tmp_log_buf, sizeof(tmp_log_buf), fmt, args);
 batadv_fdebug_log(bat_priv-&amp;gt;debug_log, "[%10u] %s",
   jiffies_to_msecs(jiffies), tmp_log_buf);
+va_end(args);
 
 return 0;
 }
diff --git a/main.h b/main.h
index 977de45..b850eeb 100644
--- a/main.h
+++ b/main.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -187,36 +187,23 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; int batadv_algo_select(struct bat_priv *bat_priv, char *name);
 int batadv_algo_seq_print_text(struct seq_file *seq, void *offset);
 
 #ifdef CONFIG_BATMAN_ADV_DEBUG
-int batadv_debug_log(struct bat_priv *bat_priv, const char *fmt, va_list args);
-
-static inline void batadv_vdbg(int type, struct bat_priv *bat_priv,
-       const char *fmt, va_list args)
-{
-if (atomic_read(&amp;amp;bat_priv-&amp;gt;log_level) &amp;amp; type)
-batadv_debug_log(bat_priv, fmt, args);
-}
-
+int batadv_debug_log(struct bat_priv *bat_priv, const char *fmt, ...)
+__printf(2, 3);
+
+#define batadv_dbg(type, bat_priv, fmt, arg...)\
+do {\
+if (atomic_read(&amp;amp;bat_priv-&amp;gt;log_level) &amp;amp; type)\
+batadv_debug_log(bat_priv, fmt, ## arg);\
+}\
+while (0)
 #else /* !CONFIG_BATMAN_ADV_DEBUG */
-
-static inline void batadv_vdbg(int type __always_unused,
-       struct bat_priv *bat_priv __always_unused,
-       const char *fmt __always_unused,
-       va_list args __always_unused)
-{
-}
-
-#endif
-
 __printf(3, 4)
-static inline void batadv_dbg(int type, struct bat_priv *bat_priv,
-       const char *fmt, ...)
+static inline void batadv_dbg(int type __always_unused,
+      struct bat_priv *bat_priv __always_unused,
+      const char *fmt __always_unused, ...)
 {
-va_list args;
-
-va_start(args, fmt);
-batadv_vdbg(type, bat_priv, fmt, args);
-va_end(args);
 }
+#endif
 
 #define batadv_info(net_dev, fmt, arg...)\
 do {\
&lt;/pre&gt;</description>
    <dc:creator>Sven Eckelmann</dc:creator>
    <dc:date>2012-05-20T08:55:38</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/7187">
    <title>Re: [PATCH] batman-adv: Revert Distributed ARP Table</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/7187</link>
    <description>&lt;pre&gt;
Applied in revision 206af11.

Thanks,
Marek

&lt;/pre&gt;</description>
    <dc:creator>Marek Lindner</dc:creator>
    <dc:date>2012-05-19T07:45:28</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/7186">
    <title>[PATCH] batman-adv: Avoid gcc inline problems withvararg functions</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/7186</link>
    <description>&lt;pre&gt;gcc doesn't support the inlining of functions using vararg. Sparse fails to
build the source when having such functions marked using the keyword "inline".

This problem was introduced in 3b896e321c49e3cbbfd540f537c007db883c3900

Signed-off-by: Sven Eckelmann &amp;lt;sven-KaDOiPu9UxWEi8DpZVb4nw&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 main.h |   20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/main.h b/main.h
index 977de45..4721c86 100644
--- a/main.h
+++ b/main.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -196,6 +196,17 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static inline void batadv_vdbg(int type, struct bat_priv *bat_priv,
 batadv_debug_log(bat_priv, fmt, args);
 }
 
+__printf(3, 4)
+static inline void batadv_dbg(int type, struct bat_priv *bat_priv,
+       const char *fmt, ...)
+{
+va_list args;
+
+va_start(args, fmt);
+batadv_vdbg(type, bat_priv, fmt, args);
+va_end(args);
+}
+
 #else /* !CONFIG_BATMAN_ADV_DEBUG */
 
 static inline void batadv_vdbg(int type __always_unused,
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -205,19 +216,14 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static inline void batadv_vdbg(int type __always_unused,
 {
 }
 
-#endif
-
 __printf(3, 4)
 static inline void batadv_dbg(int type, struct bat_priv *bat_priv,
        const char *fmt, ...)
 {
-va_list args;
-
-va_start(args, fmt);
-batadv_vdbg(type, bat_priv, fmt, args);
-va_end(args);
 }
 
+#endif
+
 #define batadv_info(net_dev, fmt, arg...)\
 do {\
 struct net_device *_netdev = (net_dev);                 \
&lt;/pre&gt;</description>
    <dc:creator>Sven Eckelmann</dc:creator>
    <dc:date>2012-05-19T07:37:55</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/7185">
    <title>Re: [PATCH] batman-adv: Revert Distributed ARP Table</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/7185</link>
    <description>&lt;pre&gt;
I've attached the updated patch that is compatible with your changes in 
distributed-arp-table.c to my patches.

Kind regards,
Sven&lt;/pre&gt;</description>
    <dc:creator>Sven Eckelmann</dc:creator>
    <dc:date>2012-05-19T06:53:16</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/7184">
    <title>Re: [PATCH] batman-adv: Revert Distributed ARP Table</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/7184</link>
    <description>&lt;pre&gt;
Applied in revision d5a6caf.

Thanks,
Marek

&lt;/pre&gt;</description>
    <dc:creator>Marek Lindner</dc:creator>
    <dc:date>2012-05-19T06:11:42</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/7183">
    <title>Re: [PATCH 13/13] batman-adv: Use typedef instead ofdefine for type dat_addr_t</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/7183</link>
    <description>&lt;pre&gt;
Applied in revision 551c540.

Thanks,
Marek

&lt;/pre&gt;</description>
    <dc:creator>Marek Lindner</dc:creator>
    <dc:date>2012-05-18T16:03:22</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/7182">
    <title>Re: [PATCH] batman-adv: Prefix bat_sysfs localstatic functions with batadv_</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/7182</link>
    <description>&lt;pre&gt;
Applied in revision 34f20d6.

Thanks,
Marek

&lt;/pre&gt;</description>
    <dc:creator>Marek Lindner</dc:creator>
    <dc:date>2012-05-18T16:01:21</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/7181">
    <title>[PATCH] batman-adv: Prefix bat_sysfs local staticfunctions with batadv_</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/7181</link>
    <description>&lt;pre&gt;All non-static symbols of batman-adv were prefixed with batadv_ to avoid
collisions with other symbols of the kernel. Other symbols of batman-adv
should use the same prefix to keep the naming scheme consistent.

This was actually part of patch used to create the commit
98881e49493eb1a6ae2330d861386432064b2222.

Signed-off-by: Sven Eckelmann &amp;lt;sven-KaDOiPu9UxWEi8DpZVb4nw&amp;lt; at &amp;gt;public.gmane.org&amp;gt;

This is the alternative version of this patch... that keeps the functionality
for ELP

 bat_sysfs.c |    9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/bat_sysfs.c b/bat_sysfs.c
index 336a61d..07fde83 100644
--- a/bat_sysfs.c
+++ b/bat_sysfs.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -123,8 +123,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; ssize_t batadv_show_##_name(struct kobject *kobj,\
 
 
 #define BAT_ATTR_HIF_STORE_UINT(_name, _min, _max, _post_func)\
-ssize_t store_##_name(struct kobject *kobj, struct attribute *attr,\
-      char *buff, size_t count)\
+ssize_t batadv_store_##_name(struct kobject *kobj,\
+     struct attribute *attr, char *buff,\
+     size_t count)\
 {\
 struct net_device *net_dev = batadv_kobj_to_netdev(kobj);\
 struct hard_iface *hard_iface;\
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -142,8 +143,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; ssize_t store_##_name(struct kobject *kobj, struct attribute *attr,\
 }
 
 #define BAT_ATTR_HIF_SHOW_UINT(_name)\
-ssize_t show_##_name(struct kobject *kobj,\
-     struct attribute *attr, char *buff)\
+ssize_t batadv_show_##_name(struct kobject *kobj,\
+    struct attribute *attr, char *buff)\
 {\
 struct net_device *net_dev = batadv_kobj_to_netdev(kobj);\
 struct hard_iface *hard_iface;\
&lt;/pre&gt;</description>
    <dc:creator>Sven Eckelmann</dc:creator>
    <dc:date>2012-05-18T15:16:13</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/7180">
    <title>Re: [PATCH 11/13] batman-adv: Directly print toseq_file in vis</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/7180</link>
    <description>&lt;pre&gt;
Applied in revision 6977ef4.

Thanks,
Marek

&lt;/pre&gt;</description>
    <dc:creator>Marek Lindner</dc:creator>
    <dc:date>2012-05-18T15:03:26</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/7179">
    <title>Re: [PATCH 10/13] batman-adv: Prefix remainingfunction like macros with batadv_</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/7179</link>
    <description>&lt;pre&gt;
Applied in revision 52943ab.

Thanks,
Marek

&lt;/pre&gt;</description>
    <dc:creator>Marek Lindner</dc:creator>
    <dc:date>2012-05-18T15:00:01</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/7178">
    <title>Re: [PATCH 09/13] batman-adv: Replace simplefunction like defines with functions</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/7178</link>
    <description>&lt;pre&gt;
Applied in revision 3b896e3.

Thanks,
Marek

&lt;/pre&gt;</description>
    <dc:creator>Marek Lindner</dc:creator>
    <dc:date>2012-05-18T14:41:42</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.org.freifunk.batman/7175">
    <title>Re: [PATCH 06/13] batman-adv: Prefix vis localstatic functions with batadv_</title>
    <link>http://permalink.gmane.org/gmane.org.freifunk.batman/7175</link>
    <description>&lt;pre&gt;
Applied in revision a371f80.

Thanks,
Marek

&lt;/pre&gt;</description>
    <dc:creator>Marek Lindner</dc:creator>
    <dc:date>2012-05-18T09:58:56</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.org.freifunk.batman">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.org.freifunk.batman</link>
  </textinput>
</rdf:RDF>

