commit e0e817392b9a ("CRED: Add some configurable debugging [try #6]")
added the kdebug mechanism to this file back in 2009.

The kdebug macro calls no_printk which always evaluates arguments.

Most of the kdebug uses have an unnecessary call of
        atomic_read(&cred->usage)

Make the kdebug macro do nothing by defining it with
        do { if (0) no_printk(...); } while (0)
when not enabled.

$ size kernel/cred.o* (defconfig x86-64)
   text    data     bss     dec     hex filename
   2748     336       8    3092     c14 kernel/cred.o.new
   2788     336       8    3132     c3c kernel/cred.o.old

Miscellanea:
o Neaten the #define kdebug macros while there

Signed-off-by: Joe Perches <[email protected]>
---
 kernel/cred.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/kernel/cred.c b/kernel/cred.c
index ec1c076..71179a0 100644
--- a/kernel/cred.c
+++ b/kernel/cred.c
@@ -20,11 +20,16 @@
 #include <linux/cn_proc.h>
 
 #if 0
-#define kdebug(FMT, ...) \
-       printk("[%-5.5s%5u] "FMT"\n", current->comm, current->pid 
,##__VA_ARGS__)
+#define kdebug(FMT, ...)                                               \
+       printk("[%-5.5s%5u] " FMT "\n",                                 \
+              current->comm, current->pid, ##__VA_ARGS__)
 #else
-#define kdebug(FMT, ...) \
-       no_printk("[%-5.5s%5u] "FMT"\n", current->comm, current->pid 
,##__VA_ARGS__)
+#define kdebug(FMT, ...)                                               \
+do {                                                                   \
+       if (0)                                                          \
+               no_printk("[%-5.5s%5u] " FMT "\n",                      \
+                         current->comm, current->pid, ##__VA_ARGS__);  \
+} while (0)
 #endif
 
 static struct kmem_cache *cred_jar;


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to