Since there are many debugging information with a
function name,it's better to replace them with %s.

Notice that there are many similar code patterns, so I
defined two macros. One is kdb_func_printf, which is used
for debugging information that requires function names.
As below:

-               kdb_printf("func_name: ...",args);

The other is kdb_ardbg_printf, which adds a conditional
statement to the former.This is used for:

-               if (KDB_DEBUG(AR))
-                       kdb_printf("func_name: ...",args);

In addition, I changed the format code of size_t to %zu.

Signed-off-by: Stephen Zhang <stephenzhang...@gmail.com>
---
 kernel/debug/kdb/kdb_support.c | 64 ++++++++++++++++++++++--------------------
 1 file changed, 33 insertions(+), 31 deletions(-)

diff --git a/kernel/debug/kdb/kdb_support.c b/kernel/debug/kdb/kdb_support.c
index 6226502..d255003 100644
--- a/kernel/debug/kdb/kdb_support.c
+++ b/kernel/debug/kdb/kdb_support.c
@@ -27,6 +27,15 @@
 #include <linux/slab.h>
 #include "kdb_private.h"
 
+#define kdb_func_printf(format, args...) \
+       kdb_printf("%s: " format, __func__, ##args)
+
+#define kdb_ardbg_printf(format, args...) \
+       do { \
+               if (KDB_DEBUG(AR)) \
+                       kdb_func_printf(format, ##args); \
+       } while (0)
+
 /*
  * kdbgetsymval - Return the address of the given symbol.
  *
@@ -39,20 +48,16 @@
  */
 int kdbgetsymval(const char *symname, kdb_symtab_t *symtab)
 {
-       if (KDB_DEBUG(AR))
-               kdb_printf("kdbgetsymval: symname=%s, symtab=%px\n", symname,
-                          symtab);
+       kdb_ardbg_printf("symname=%s, symtab=%px\n", symname, symtab);
        memset(symtab, 0, sizeof(*symtab));
        symtab->sym_start = kallsyms_lookup_name(symname);
        if (symtab->sym_start) {
-               if (KDB_DEBUG(AR))
-                       kdb_printf("kdbgetsymval: returns 1, "
-                                  "symtab->sym_start=0x%lx\n",
-                                  symtab->sym_start);
+               kdb_ardbg_printf("returns 1, "
+                                "symtab->sym_start=0x%lx\n",
+                                symtab->sym_start);
                return 1;
        }
-       if (KDB_DEBUG(AR))
-               kdb_printf("kdbgetsymval: returns 0\n");
+       kdb_ardbg_printf("returns 0\n");
        return 0;
 }
 EXPORT_SYMBOL(kdbgetsymval);
@@ -87,15 +92,14 @@ int kdbnearsym(unsigned long addr, kdb_symtab_t *symtab)
 #define knt1_size 128          /* must be >= kallsyms table size */
        char *knt1 = NULL;
 
-       if (KDB_DEBUG(AR))
-               kdb_printf("kdbnearsym: addr=0x%lx, symtab=%px\n", addr, 
symtab);
+       kdb_ardbg_printf("addr=0x%lx, symtab=%px\n", addr, symtab);
        memset(symtab, 0, sizeof(*symtab));
 
        if (addr < 4096)
                goto out;
        knt1 = debug_kmalloc(knt1_size, GFP_ATOMIC);
        if (!knt1) {
-               kdb_printf("kdbnearsym: addr=0x%lx cannot kmalloc knt1\n",
+               kdb_func_printf("addr=0x%lx cannot kmalloc knt1\n",
                           addr);
                goto out;
        }
@@ -147,11 +151,10 @@ int kdbnearsym(unsigned long addr, kdb_symtab_t *symtab)
 
        if (symtab->mod_name == NULL)
                symtab->mod_name = "kernel";
-       if (KDB_DEBUG(AR))
-               kdb_printf("kdbnearsym: returns %d symtab->sym_start=0x%lx, "
-                  "symtab->mod_name=%px, symtab->sym_name=%px (%s)\n", ret,
-                  symtab->sym_start, symtab->mod_name, symtab->sym_name,
-                  symtab->sym_name);
+       kdb_ardbg_printf("returns %d symtab->sym_start=0x%lx, "
+          "symtab->mod_name=%px, symtab->sym_name=%px (%s)\n", ret,
+          symtab->sym_start, symtab->mod_name, symtab->sym_name,
+          symtab->sym_name);
 
 out:
        debug_kfree(knt1);
@@ -328,7 +331,7 @@ int kdb_getarea_size(void *res, unsigned long addr, size_t 
size)
        int ret = copy_from_kernel_nofault((char *)res, (char *)addr, size);
        if (ret) {
                if (!KDB_STATE(SUPPRESS)) {
-                       kdb_printf("kdb_getarea: Bad address 0x%lx\n", addr);
+                       kdb_func_printf("Bad address 0x%lx\n", addr);
                        KDB_STATE_SET(SUPPRESS);
                }
                ret = KDB_BADADDR;
@@ -353,7 +356,7 @@ int kdb_putarea_size(unsigned long addr, void *res, size_t 
size)
        int ret = copy_from_kernel_nofault((char *)addr, (char *)res, size);
        if (ret) {
                if (!KDB_STATE(SUPPRESS)) {
-                       kdb_printf("kdb_putarea: Bad address 0x%lx\n", addr);
+                       kdb_func_printf("Bad address 0x%lx\n", addr);
                        KDB_STATE_SET(SUPPRESS);
                }
                ret = KDB_BADADDR;
@@ -435,7 +438,7 @@ int kdb_getphysword(unsigned long *word, unsigned long 
addr, size_t size)
                fallthrough;
        default:
                diag = KDB_BADWIDTH;
-               kdb_printf("kdb_getphysword: bad width %ld\n", (long) size);
+               kdb_func_printf("bad width %zu\n", size);
        }
        return diag;
 }
@@ -484,7 +487,7 @@ int kdb_getword(unsigned long *word, unsigned long addr, 
size_t size)
                fallthrough;
        default:
                diag = KDB_BADWIDTH;
-               kdb_printf("kdb_getword: bad width %ld\n", (long) size);
+               kdb_func_printf("bad width %zu\n", size);
        }
        return diag;
 }
@@ -528,7 +531,7 @@ int kdb_putword(unsigned long addr, unsigned long word, 
size_t size)
                fallthrough;
        default:
                diag = KDB_BADWIDTH;
-               kdb_printf("kdb_putword: bad width %ld\n", (long) size);
+               kdb_func_printf("bad width %zu\n", size);
        }
        return diag;
 }
@@ -602,8 +605,7 @@ unsigned long kdb_task_state_string(const char *s)
                        res = ~0UL;
                        break;
                default:
-                         kdb_printf("%s: unknown flag '%c' ignored\n",
-                                    __func__, *s);
+                         kdb_func_printf("unknown flag '%c' ignored\n", *s);
                          break;
                }
                ++s;
@@ -884,18 +886,18 @@ void debug_kusage(void)
        if (!debug_kusage_one_time)
                goto out;
        debug_kusage_one_time = 0;
-       kdb_printf("%s: debug_kmalloc memory leak dah_first %d\n",
-                  __func__, dah_first);
+       kdb_func_printf("debug_kmalloc memory leak dah_first %d\n",
+                   dah_first);
        if (dah_first) {
                h_used = (struct debug_alloc_header *)debug_alloc_pool;
-               kdb_printf("%s: h_used %px size %d\n", __func__, h_used,
+               kdb_func_printf("h_used %px size %d\n", h_used,
                           h_used->size);
        }
        do {
                h_used = (struct debug_alloc_header *)
                          ((char *)h_free + dah_overhead + h_free->size);
-               kdb_printf("%s: h_used %px size %d caller %px\n",
-                          __func__, h_used, h_used->size, h_used->caller);
+               kdb_func_printf("h_used %px size %d caller %px\n",
+                          h_used, h_used->size, h_used->caller);
                h_free = (struct debug_alloc_header *)
                          (debug_alloc_pool + h_free->next);
        } while (h_free->next);
@@ -903,8 +905,8 @@ void debug_kusage(void)
                  ((char *)h_free + dah_overhead + h_free->size);
        if ((char *)h_used - debug_alloc_pool !=
            sizeof(debug_alloc_pool_aligned))
-               kdb_printf("%s: h_used %px size %d caller %px\n",
-                          __func__, h_used, h_used->size, h_used->caller);
+               kdb_func_printf("h_used %px size %d caller %px\n",
+                          h_used, h_used->size, h_used->caller);
 out:
        spin_unlock(&dap_lock);
 }
-- 
1.8.3.1



_______________________________________________
Kgdb-bugreport mailing list
Kgdb-bugreport@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kgdb-bugreport

Reply via email to