提交 5e124169 编写于 作者: J Jim Cromie 提交者: Rusty Russell

module: replace DEBUGP with pr_debug

Use more flexible pr_debug.  This allows:

  echo "module module +p" > /dbg/dynamic_debug/control

to turn on debug messages when needed.
Signed-off-by: NJim Cromie <jim.cromie@gmail.com>
Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
上级 bd77c047
...@@ -62,12 +62,6 @@ ...@@ -62,12 +62,6 @@
#define CREATE_TRACE_POINTS #define CREATE_TRACE_POINTS
#include <trace/events/module.h> #include <trace/events/module.h>
#if 0
#define DEBUGP printk
#else
#define DEBUGP(fmt , a...)
#endif
#ifndef ARCH_SHF_SMALL #ifndef ARCH_SHF_SMALL
#define ARCH_SHF_SMALL 0 #define ARCH_SHF_SMALL 0
#endif #endif
...@@ -409,7 +403,7 @@ const struct kernel_symbol *find_symbol(const char *name, ...@@ -409,7 +403,7 @@ const struct kernel_symbol *find_symbol(const char *name,
return fsa.sym; return fsa.sym;
} }
DEBUGP("Failed to find symbol %s\n", name); pr_debug("Failed to find symbol %s\n", name);
return NULL; return NULL;
} }
EXPORT_SYMBOL_GPL(find_symbol); EXPORT_SYMBOL_GPL(find_symbol);
...@@ -599,11 +593,11 @@ static int already_uses(struct module *a, struct module *b) ...@@ -599,11 +593,11 @@ static int already_uses(struct module *a, struct module *b)
list_for_each_entry(use, &b->source_list, source_list) { list_for_each_entry(use, &b->source_list, source_list) {
if (use->source == a) { if (use->source == a) {
DEBUGP("%s uses %s!\n", a->name, b->name); pr_debug("%s uses %s!\n", a->name, b->name);
return 1; return 1;
} }
} }
DEBUGP("%s does not use %s!\n", a->name, b->name); pr_debug("%s does not use %s!\n", a->name, b->name);
return 0; return 0;
} }
...@@ -618,7 +612,7 @@ static int add_module_usage(struct module *a, struct module *b) ...@@ -618,7 +612,7 @@ static int add_module_usage(struct module *a, struct module *b)
{ {
struct module_use *use; struct module_use *use;
DEBUGP("Allocating new usage for %s.\n", a->name); pr_debug("Allocating new usage for %s.\n", a->name);
use = kmalloc(sizeof(*use), GFP_ATOMIC); use = kmalloc(sizeof(*use), GFP_ATOMIC);
if (!use) { if (!use) {
printk(KERN_WARNING "%s: out of memory loading\n", a->name); printk(KERN_WARNING "%s: out of memory loading\n", a->name);
...@@ -662,7 +656,7 @@ static void module_unload_free(struct module *mod) ...@@ -662,7 +656,7 @@ static void module_unload_free(struct module *mod)
mutex_lock(&module_mutex); mutex_lock(&module_mutex);
list_for_each_entry_safe(use, tmp, &mod->target_list, target_list) { list_for_each_entry_safe(use, tmp, &mod->target_list, target_list) {
struct module *i = use->target; struct module *i = use->target;
DEBUGP("%s unusing %s\n", mod->name, i->name); pr_debug("%s unusing %s\n", mod->name, i->name);
module_put(i); module_put(i);
list_del(&use->source_list); list_del(&use->source_list);
list_del(&use->target_list); list_del(&use->target_list);
...@@ -760,7 +754,7 @@ static void wait_for_zero_refcount(struct module *mod) ...@@ -760,7 +754,7 @@ static void wait_for_zero_refcount(struct module *mod)
/* Since we might sleep for some time, release the mutex first */ /* Since we might sleep for some time, release the mutex first */
mutex_unlock(&module_mutex); mutex_unlock(&module_mutex);
for (;;) { for (;;) {
DEBUGP("Looking at refcount...\n"); pr_debug("Looking at refcount...\n");
set_current_state(TASK_UNINTERRUPTIBLE); set_current_state(TASK_UNINTERRUPTIBLE);
if (module_refcount(mod) == 0) if (module_refcount(mod) == 0)
break; break;
...@@ -803,7 +797,7 @@ SYSCALL_DEFINE2(delete_module, const char __user *, name_user, ...@@ -803,7 +797,7 @@ SYSCALL_DEFINE2(delete_module, const char __user *, name_user,
if (mod->state != MODULE_STATE_LIVE) { if (mod->state != MODULE_STATE_LIVE) {
/* FIXME: if (force), slam module count and wake up /* FIXME: if (force), slam module count and wake up
waiter --RR */ waiter --RR */
DEBUGP("%s already dying\n", mod->name); pr_debug("%s already dying\n", mod->name);
ret = -EBUSY; ret = -EBUSY;
goto out; goto out;
} }
...@@ -1056,7 +1050,7 @@ static int check_version(Elf_Shdr *sechdrs, ...@@ -1056,7 +1050,7 @@ static int check_version(Elf_Shdr *sechdrs,
if (versions[i].crc == maybe_relocated(*crc, crc_owner)) if (versions[i].crc == maybe_relocated(*crc, crc_owner))
return 1; return 1;
DEBUGP("Found checksum %lX vs module %lX\n", pr_debug("Found checksum %lX vs module %lX\n",
maybe_relocated(*crc, crc_owner), versions[i].crc); maybe_relocated(*crc, crc_owner), versions[i].crc);
goto bad_version; goto bad_version;
} }
...@@ -1833,7 +1827,7 @@ static int simplify_symbols(struct module *mod, const struct load_info *info) ...@@ -1833,7 +1827,7 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
case SHN_COMMON: case SHN_COMMON:
/* We compiled with -fno-common. These are not /* We compiled with -fno-common. These are not
supposed to happen. */ supposed to happen. */
DEBUGP("Common symbol: %s\n", name); pr_debug("Common symbol: %s\n", name);
printk("%s: please compile with -fno-common\n", printk("%s: please compile with -fno-common\n",
mod->name); mod->name);
ret = -ENOEXEC; ret = -ENOEXEC;
...@@ -1841,7 +1835,7 @@ static int simplify_symbols(struct module *mod, const struct load_info *info) ...@@ -1841,7 +1835,7 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
case SHN_ABS: case SHN_ABS:
/* Don't need to do anything */ /* Don't need to do anything */
DEBUGP("Absolute symbol: 0x%08lx\n", pr_debug("Absolute symbol: 0x%08lx\n",
(long)sym[i].st_value); (long)sym[i].st_value);
break; break;
...@@ -1965,7 +1959,7 @@ static void layout_sections(struct module *mod, struct load_info *info) ...@@ -1965,7 +1959,7 @@ static void layout_sections(struct module *mod, struct load_info *info)
for (i = 0; i < info->hdr->e_shnum; i++) for (i = 0; i < info->hdr->e_shnum; i++)
info->sechdrs[i].sh_entsize = ~0UL; info->sechdrs[i].sh_entsize = ~0UL;
DEBUGP("Core section allocation order:\n"); pr_debug("Core section allocation order:\n");
for (m = 0; m < ARRAY_SIZE(masks); ++m) { for (m = 0; m < ARRAY_SIZE(masks); ++m) {
for (i = 0; i < info->hdr->e_shnum; ++i) { for (i = 0; i < info->hdr->e_shnum; ++i) {
Elf_Shdr *s = &info->sechdrs[i]; Elf_Shdr *s = &info->sechdrs[i];
...@@ -1977,7 +1971,7 @@ static void layout_sections(struct module *mod, struct load_info *info) ...@@ -1977,7 +1971,7 @@ static void layout_sections(struct module *mod, struct load_info *info)
|| strstarts(sname, ".init")) || strstarts(sname, ".init"))
continue; continue;
s->sh_entsize = get_offset(mod, &mod->core_size, s, i); s->sh_entsize = get_offset(mod, &mod->core_size, s, i);
DEBUGP("\t%s\n", name); pr_debug("\t%s\n", sname);
} }
switch (m) { switch (m) {
case 0: /* executable */ case 0: /* executable */
...@@ -1994,7 +1988,7 @@ static void layout_sections(struct module *mod, struct load_info *info) ...@@ -1994,7 +1988,7 @@ static void layout_sections(struct module *mod, struct load_info *info)
} }
} }
DEBUGP("Init section allocation order:\n"); pr_debug("Init section allocation order:\n");
for (m = 0; m < ARRAY_SIZE(masks); ++m) { for (m = 0; m < ARRAY_SIZE(masks); ++m) {
for (i = 0; i < info->hdr->e_shnum; ++i) { for (i = 0; i < info->hdr->e_shnum; ++i) {
Elf_Shdr *s = &info->sechdrs[i]; Elf_Shdr *s = &info->sechdrs[i];
...@@ -2007,7 +2001,7 @@ static void layout_sections(struct module *mod, struct load_info *info) ...@@ -2007,7 +2001,7 @@ static void layout_sections(struct module *mod, struct load_info *info)
continue; continue;
s->sh_entsize = (get_offset(mod, &mod->init_size, s, i) s->sh_entsize = (get_offset(mod, &mod->init_size, s, i)
| INIT_OFFSET_MASK); | INIT_OFFSET_MASK);
DEBUGP("\t%s\n", sname); pr_debug("\t%s\n", sname);
} }
switch (m) { switch (m) {
case 0: /* executable */ case 0: /* executable */
...@@ -2195,7 +2189,7 @@ static void layout_symtab(struct module *mod, struct load_info *info) ...@@ -2195,7 +2189,7 @@ static void layout_symtab(struct module *mod, struct load_info *info)
symsect->sh_flags |= SHF_ALLOC; symsect->sh_flags |= SHF_ALLOC;
symsect->sh_entsize = get_offset(mod, &mod->init_size, symsect, symsect->sh_entsize = get_offset(mod, &mod->init_size, symsect,
info->index.sym) | INIT_OFFSET_MASK; info->index.sym) | INIT_OFFSET_MASK;
DEBUGP("\t%s\n", info->secstrings + symsect->sh_name); pr_debug("\t%s\n", info->secstrings + symsect->sh_name);
src = (void *)info->hdr + symsect->sh_offset; src = (void *)info->hdr + symsect->sh_offset;
nsrc = symsect->sh_size / sizeof(*src); nsrc = symsect->sh_size / sizeof(*src);
...@@ -2216,7 +2210,7 @@ static void layout_symtab(struct module *mod, struct load_info *info) ...@@ -2216,7 +2210,7 @@ static void layout_symtab(struct module *mod, struct load_info *info)
strsect->sh_flags |= SHF_ALLOC; strsect->sh_flags |= SHF_ALLOC;
strsect->sh_entsize = get_offset(mod, &mod->init_size, strsect, strsect->sh_entsize = get_offset(mod, &mod->init_size, strsect,
info->index.str) | INIT_OFFSET_MASK; info->index.str) | INIT_OFFSET_MASK;
DEBUGP("\t%s\n", info->secstrings + strsect->sh_name); pr_debug("\t%s\n", info->secstrings + strsect->sh_name);
} }
static void add_kallsyms(struct module *mod, const struct load_info *info) static void add_kallsyms(struct module *mod, const struct load_info *info)
...@@ -2618,7 +2612,7 @@ static int move_module(struct module *mod, struct load_info *info) ...@@ -2618,7 +2612,7 @@ static int move_module(struct module *mod, struct load_info *info)
mod->module_init = ptr; mod->module_init = ptr;
/* Transfer each section which specifies SHF_ALLOC */ /* Transfer each section which specifies SHF_ALLOC */
DEBUGP("final section addresses:\n"); pr_debug("final section addresses:\n");
for (i = 0; i < info->hdr->e_shnum; i++) { for (i = 0; i < info->hdr->e_shnum; i++) {
void *dest; void *dest;
Elf_Shdr *shdr = &info->sechdrs[i]; Elf_Shdr *shdr = &info->sechdrs[i];
...@@ -2636,8 +2630,8 @@ static int move_module(struct module *mod, struct load_info *info) ...@@ -2636,8 +2630,8 @@ static int move_module(struct module *mod, struct load_info *info)
memcpy(dest, (void *)shdr->sh_addr, shdr->sh_size); memcpy(dest, (void *)shdr->sh_addr, shdr->sh_size);
/* Update sh_addr to point to copy in image. */ /* Update sh_addr to point to copy in image. */
shdr->sh_addr = (unsigned long)dest; shdr->sh_addr = (unsigned long)dest;
DEBUGP("\t0x%lx %s\n", pr_debug("\t0x%lx %s\n",
shdr->sh_addr, info->secstrings + shdr->sh_name); (long)shdr->sh_addr, info->secstrings + shdr->sh_name);
} }
return 0; return 0;
...@@ -2798,7 +2792,7 @@ static struct module *load_module(void __user *umod, ...@@ -2798,7 +2792,7 @@ static struct module *load_module(void __user *umod,
struct module *mod; struct module *mod;
long err; long err;
DEBUGP("load_module: umod=%p, len=%lu, uargs=%p\n", pr_debug("load_module: umod=%p, len=%lu, uargs=%p\n",
umod, len, uargs); umod, len, uargs);
/* Copy in the blobs from userspace, check they are vaguely sane. */ /* Copy in the blobs from userspace, check they are vaguely sane. */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册