The following commit has been merged in the master branch: commit dfacdc0457d64118d5370aabc9cfd0ebf2ba13b2 Author: Sven Eckelmann sven@narfation.org Date: Sun May 20 10:55:38 2012 +0200
batman-adv: Remove batadv_ vararg inline functions
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 sven@narfation.org
diff --git a/bat_debugfs.c b/bat_debugfs.c index c3f7e2f..87349f4 100644 --- a/bat_debugfs.c +++ b/bat_debugfs.c @@ -74,13 +74,16 @@ 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->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 628b177..e447f73 100644 --- a/main.h +++ b/main.h @@ -174,36 +174,23 @@ 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(&bat_priv->log_level) & 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(&bat_priv->log_level) & 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 { \