2016-03-08 05:54:14

by Nick Wang

[permalink] [raw]
Subject: [PATCH] include/net/inet_connection_sock.h: Use pr_devel() instead of pr_debug()

When DYNAMIC_DEBUG enabled, pr_debug() depends on KBUILD_MODNAME which
also depends on the modules name in Makefile.
Refer to the information in "scripts/Makefile.lib":

# $(modname_flags) #defines KBUILD_MODNAME as the name of the module it will
# end up in (or would, if it gets compiled in)
# Note: Files that end up in two or more modules are compiled without the
# KBUILD_MODNAME definition. The reason is that any made-up name would
# differ in different configs.

File "inet_connection_sock.h" is a common share header that not can
be use for one module, so use pr_devel instead of pr_debug is OK.

In file included from include/linux/printk.h:277:0,
from include/linux/kernel.h:13,
from include/linux/list.h:8,
from include/linux/kobject.h:20,
from include/linux/device.h:17,
from include/rdma/ib_verbs.h:43,
from /usr/src/drbd-9.0/drbd/drbd-kernel-compat/tests/have_ib_cq_init_attr.c:1:
include/net/inet_connection_sock.h: In function ‘inet_csk_clear_xmit_timer’:
include/linux/dynamic_debug.h:66:14: error: ‘KBUILD_MODNAME’ undeclared (first use in this function)
.modname = KBUILD_MODNAME, \
^
include/linux/dynamic_debug.h:76:2: note: in expansion of macro ‘DEFINE_DYNAMIC_DEBUG_METADATA’
DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \
^
include/linux/printk.h:283:2: note: in expansion of macro ‘dynamic_pr_debug’
dynamic_pr_debug(fmt, ##__VA_ARGS__)
^
include/net/inet_connection_sock.h:213:3: note: in expansion of macro ‘pr_debug’
pr_debug("%s", inet_csk_timer_bug_msg);
^

Signed-off-by: Nick Wang <[email protected]>
---
include/net/inet_connection_sock.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/net/inet_connection_sock.h b/include/net/inet_connection_sock.h
index 49dcad4..b59be52 100644
--- a/include/net/inet_connection_sock.h
+++ b/include/net/inet_connection_sock.h
@@ -210,7 +210,7 @@ static inline void inet_csk_clear_xmit_timer(struct sock *sk, const int what)
}
#ifdef INET_CSK_DEBUG
else {
- pr_debug("%s", inet_csk_timer_bug_msg);
+ pr_devel("%s", inet_csk_timer_bug_msg);
}
#endif
}
@@ -226,7 +226,7 @@ static inline void inet_csk_reset_xmit_timer(struct sock *sk, const int what,

if (when > max_when) {
#ifdef INET_CSK_DEBUG
- pr_debug("reset_xmit_timer: sk=%p %d when=0x%lx, caller=%p\n",
+ pr_devel("reset_xmit_timer: sk=%p %d when=0x%lx, caller=%p\n",
sk, what, when, current_text_addr());
#endif
when = max_when;
@@ -244,7 +244,7 @@ static inline void inet_csk_reset_xmit_timer(struct sock *sk, const int what,
}
#ifdef INET_CSK_DEBUG
else {
- pr_debug("%s", inet_csk_timer_bug_msg);
+ pr_devel("%s", inet_csk_timer_bug_msg);
}
#endif
}
--
1.8.5.6


2016-03-10 21:14:54

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] include/net/inet_connection_sock.h: Use pr_devel() instead of pr_debug()

From: Nick Wang <[email protected]>
Date: Tue, 8 Mar 2016 13:52:28 +0800

> File "inet_connection_sock.h" is a common share header that not can
> be use for one module, so use pr_devel instead of pr_debug is OK.

Not really, we only want these printks to do anything only when debug
printk's are enabled.

We don't want the overhead otherwise.

You'll need to find another fix for this, sorry.