This patch removes unnecessary logspam which resulted from superfluous
calls to net_ratelimit(). With the supplied patch, net_ratelimit() is
called after the loglevel has been checked.

Signed-off-by: André Gaul <[email protected]>
---
 main.h    | 16 ++++++++++++----
 routing.c |  4 ++--
 2 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/main.h b/main.h
index 87e7196..df57639 100644
--- a/main.h
+++ b/main.h
@@ -239,21 +239,29 @@ enum batadv_dbg_level {
 int batadv_debug_log(struct batadv_priv *bat_priv, const char *fmt, ...)
 __printf(2, 3);
 
-#define batadv_dbg(type, bat_priv, fmt, arg...)                        \
+/* possibly ratelimited debug output */
+#define _batadv_dbg(type, bat_priv, ratelimited, fmt, arg...)                  
\
        do {                                                    \
-               if (atomic_read(&bat_priv->log_level) & type)   \
+               if (atomic_read(&bat_priv->log_level) & type && \
+                   (!ratelimited || net_ratelimit()))  \
                        batadv_debug_log(bat_priv, fmt, ## arg);\
        }                                                       \
        while (0)
 #else /* !CONFIG_BATMAN_ADV_DEBUG */
-__printf(3, 4)
-static inline void batadv_dbg(int type __always_unused,
+__printf(4, 5)
+static inline void _batadv_dbg(int type __always_unused,
                              struct batadv_priv *bat_priv __always_unused,
+                             int ratelimited __always_unused,
                              const char *fmt __always_unused, ...)
 {
 }
 #endif
 
+#define batadv_dbg(type, bat_priv, arg...) \
+       _batadv_dbg(type, bat_priv, 0, ## arg)
+#define batadv_dbg_ratelimited(type, bat_priv, arg...) \
+       _batadv_dbg(type, bat_priv, 1, ## arg)
+
 #define batadv_info(net_dev, fmt, arg...)                              \
        do {                                                            \
                struct net_device *_netdev = (net_dev);                 \
diff --git a/routing.c b/routing.c
index 3514153..c679c6f 100644
--- a/routing.c
+++ b/routing.c
@@ -706,7 +706,7 @@ static int batadv_check_unicast_ttvn(struct batadv_priv 
*bat_priv,
        if (batadv_tt_local_client_is_roaming(bat_priv, ethhdr->h_dest, vid)) {
                if (batadv_reroute_unicast_packet(bat_priv, unicast_packet,
                                                  ethhdr->h_dest, vid))
-                       net_ratelimited_function(batadv_dbg, BATADV_DBG_TT,
+                       batadv_dbg_ratelimited(BATADV_DBG_TT,
                                                 bat_priv,
                                                 "Rerouting unicast packet to 
%pM (dst=%pM): Local Roaming\n",
                                                 unicast_packet->dest,
@@ -752,7 +752,7 @@ static int batadv_check_unicast_ttvn(struct batadv_priv 
*bat_priv,
         */
        if (batadv_reroute_unicast_packet(bat_priv, unicast_packet,
                                          ethhdr->h_dest, vid)) {
-               net_ratelimited_function(batadv_dbg, BATADV_DBG_TT, bat_priv,
+               batadv_dbg_ratelimited(BATADV_DBG_TT, bat_priv,
                                         "Rerouting unicast packet to %pM 
(dst=%pM): TTVN mismatch old_ttvn=%u new_ttvn=%u\n",
                                         unicast_packet->dest, ethhdr->h_dest,
                                         old_ttvn, curr_ttvn);
-- 
1.9.1

Reply via email to