* [PATCH 0/2] kernel/module.c: A little neatening
@ 2010-10-30 23:58 Joe Perches
2010-10-30 23:58 ` [PATCH 1/2] kernel/module.c: Use pr_<level> and pr_fmt Joe Perches
2010-10-30 23:58 ` [PATCH 2/2] kernel/module.c: Use pr_debug and other neatening Joe Perches
0 siblings, 2 replies; 5+ messages in thread
From: Joe Perches @ 2010-10-30 23:58 UTC (permalink / raw)
To: linux-kernel; +Cc: Rusty Russell
Joe Perches (2):
kernel/module.c: Use pr_<level> and pr_fmt
kernel/module.c: Use pr_debug and other neatening
kernel/module.c | 305 ++++++++++++++++++++++++++-----------------------------
1 files changed, 146 insertions(+), 159 deletions(-)
--
1.7.3.1.g432b3.dirty
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] kernel/module.c: Use pr_<level> and pr_fmt
2010-10-30 23:58 [PATCH 0/2] kernel/module.c: A little neatening Joe Perches
@ 2010-10-30 23:58 ` Joe Perches
2010-10-31 4:04 ` Arnaud Lacombe
2010-10-30 23:58 ` [PATCH 2/2] kernel/module.c: Use pr_debug and other neatening Joe Perches
1 sibling, 1 reply; 5+ messages in thread
From: Joe Perches @ 2010-10-30 23:58 UTC (permalink / raw)
To: linux-kernel; +Cc: Rusty Russell
Add missing KERN_CONT to printks
Convert to pr_<level>
Add "#define pr_fmt(fmt) fmt" so pr_<level> uses are not prefixed.
Coalesce long formats for easier grep.
Signed-off-by: Joe Perches <joe@perches.com>
---
kernel/module.c | 108 +++++++++++++++++++++++-------------------------------
1 files changed, 46 insertions(+), 62 deletions(-)
diff --git a/kernel/module.c b/kernel/module.c
index 437a74a..9b6b0da 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -16,6 +16,9 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+
+#define pr_fmt(fmt) fmt
+
#include <linux/module.h>
#include <linux/moduleloader.h>
#include <linux/ftrace_event.h>
@@ -315,26 +318,18 @@ static bool find_symbol_in_section(const struct symsearch *syms,
if (syms->licence == GPL_ONLY)
return false;
if (syms->licence == WILL_BE_GPL_ONLY && fsa->warn) {
- printk(KERN_WARNING "Symbol %s is being used "
- "by a non-GPL module, which will not "
- "be allowed in the future\n", fsa->name);
- printk(KERN_WARNING "Please see the file "
- "Documentation/feature-removal-schedule.txt "
- "in the kernel source tree for more details.\n");
+ pr_warn("Symbol %s is being used by a non-GPL module, which will not be allowed in the future\n",
+ fsa->name);
+ pr_warn("Please see the file Documentation/feature-removal-schedule.txt in the kernel source tree for more details.\n");
}
}
#ifdef CONFIG_UNUSED_SYMBOLS
if (syms->unused && fsa->warn) {
- printk(KERN_WARNING "Symbol %s is marked as UNUSED, "
- "however this module is using it.\n", fsa->name);
- printk(KERN_WARNING
- "This symbol will go away in the future.\n");
- printk(KERN_WARNING
- "Please evalute if this is the right api to use and if "
- "it really is, submit a report the linux kernel "
- "mailinglist together with submitting your code for "
- "inclusion.\n");
+ pr_warn("Symbol %s is marked as UNUSED, however this module is using it.\n",
+ fsa->name);
+ pr_warn("This symbol will go away in the future.\n");
+ pr_warn("Please evalute if this is the right api to use and if it really is, submit a report to the linux kernel mailing list together with submitting your code for inclusion.\n");
}
#endif
@@ -395,16 +390,15 @@ static int percpu_modalloc(struct module *mod,
unsigned long size, unsigned long align)
{
if (align > PAGE_SIZE) {
- printk(KERN_WARNING "%s: per-cpu alignment %li > %li\n",
- mod->name, align, PAGE_SIZE);
+ pr_warn("%s: per-cpu alignment %li > %li\n",
+ mod->name, align, PAGE_SIZE);
align = PAGE_SIZE;
}
mod->percpu = __alloc_reserved_percpu(size, align);
if (!mod->percpu) {
- printk(KERN_WARNING
- "%s: Could not allocate %lu bytes percpu data\n",
- mod->name, size);
+ pr_warn("%s: Could not allocate %lu bytes percpu data\n",
+ mod->name, size);
return -ENOMEM;
}
mod->percpu_size = size;
@@ -578,7 +572,7 @@ static int add_module_usage(struct module *a, struct module *b)
DEBUGP("Allocating new usage for %s.\n", a->name);
use = kmalloc(sizeof(*use), GFP_ATOMIC);
if (!use) {
- printk(KERN_WARNING "%s: out of memory loading\n", a->name);
+ pr_warn("%s: out of memory loading\n", a->name);
return -ENOMEM;
}
@@ -947,8 +941,7 @@ static int try_to_force_load(struct module *mod, const char *reason)
{
#ifdef CONFIG_MODULE_FORCE_LOAD
if (!test_taint(TAINT_FORCED_MODULE))
- printk(KERN_WARNING "%s: %s: kernel tainted.\n",
- mod->name, reason);
+ pr_warn("%s: %s: kernel tainted\n", mod->name, reason);
add_taint_module(mod, TAINT_FORCED_MODULE);
return 0;
#else
@@ -1001,13 +994,12 @@ static int check_version(Elf_Shdr *sechdrs,
goto bad_version;
}
- printk(KERN_WARNING "%s: no symbol version for %s\n",
- mod->name, symname);
+ pr_warn("%s: no symbol version for %s\n", mod->name, symname);
return 0;
bad_version:
- printk("%s: disagrees about version of symbol %s\n",
- mod->name, symname);
+ pr_warn("%s: disagrees about version of symbol %s\n",
+ mod->name, symname);
return 0;
}
@@ -1110,8 +1102,8 @@ resolve_symbol_wait(struct module *mod,
!IS_ERR(ksym = resolve_symbol(mod, info, name, owner))
|| PTR_ERR(ksym) != -EBUSY,
30 * HZ) <= 0) {
- printk(KERN_WARNING "%s: gave up waiting for init of module %s.\n",
- mod->name, owner);
+ pr_warn("%s: gave up waiting for init of module %s\n",
+ mod->name, owner);
}
return ksym;
}
@@ -1419,15 +1411,14 @@ static int mod_sysfs_init(struct module *mod)
struct kobject *kobj;
if (!module_sysfs_initialized) {
- printk(KERN_ERR "%s: module sysfs not initialized\n",
- mod->name);
+ pr_err("%s: module sysfs not initialized\n", mod->name);
err = -EINVAL;
goto out;
}
kobj = kset_find_obj(module_kset, mod->name);
if (kobj) {
- printk(KERN_ERR "%s: module is already loaded\n", mod->name);
+ pr_err("%s: module is already loaded\n", mod->name);
kobject_put(kobj);
err = -EINVAL;
goto out;
@@ -1623,9 +1614,7 @@ static int verify_export_symbols(struct module *mod)
for (i = 0; i < ARRAY_SIZE(arr); i++) {
for (s = arr[i].sym; s < arr[i].sym + arr[i].num; s++) {
if (find_symbol(s->name, &owner, NULL, true, false)) {
- printk(KERN_ERR
- "%s: exports duplicate symbol %s"
- " (owned by %s)\n",
+ pr_err("%s: exports duplicate symbol %s (owned by %s)\n",
mod->name, s->name, module_name(owner));
return -ENOEXEC;
}
@@ -1652,8 +1641,8 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
/* We compiled with -fno-common. These are not
supposed to happen. */
DEBUGP("Common symbol: %s\n", name);
- printk("%s: please compile with -fno-common\n",
- mod->name);
+ pr_info("%s: please compile with -fno-common\n",
+ mod->name);
ret = -ENOEXEC;
break;
@@ -1675,8 +1664,8 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
if (!ksym && ELF_ST_BIND(sym[i].st_info) == STB_WEAK)
break;
- printk(KERN_WARNING "%s: Unknown symbol %s (err %li)\n",
- mod->name, name, PTR_ERR(ksym));
+ pr_warn("%s: Unknown symbol %s (err %li)\n",
+ mod->name, name, PTR_ERR(ksym));
ret = PTR_ERR(ksym) ?: -ENOENT;
break;
@@ -1808,8 +1797,8 @@ static void set_license(struct module *mod, const char *license)
if (!license_is_gpl_compatible(license)) {
if (!test_taint(TAINT_PROPRIETARY_MODULE))
- printk(KERN_WARNING "%s: module license '%s' taints "
- "kernel.\n", mod->name, license);
+ pr_warn("%s: module license '%s' taints kernel\n",
+ mod->name, license);
add_taint_module(mod, TAINT_PROPRIETARY_MODULE);
}
}
@@ -2048,8 +2037,8 @@ static void dynamic_debug_setup(struct _ddebug *debug, unsigned int num)
return;
#ifdef CONFIG_DYNAMIC_DEBUG
if (ddebug_add_module(debug, num, debug->modname))
- printk(KERN_ERR "dynamic debug error adding module: %s\n",
- debug->modname);
+ pr_err("dynamic debug error adding module: %s\n",
+ debug->modname);
#endif
}
@@ -2163,8 +2152,7 @@ static int rewrite_section_headers(struct load_info *info)
Elf_Shdr *shdr = &info->sechdrs[i];
if (shdr->sh_type != SHT_NOBITS
&& info->len < shdr->sh_offset + shdr->sh_size) {
- printk(KERN_ERR "Module len %lu truncated\n",
- info->len);
+ pr_err("Module len %lu truncated\n", info->len);
return -ENOEXEC;
}
@@ -2223,15 +2211,14 @@ static struct module *setup_load_info(struct load_info *info)
info->index.mod = find_sec(info, ".gnu.linkonce.this_module");
if (!info->index.mod) {
- printk(KERN_WARNING "No module found in object\n");
+ pr_warn("No module found in object\n");
return ERR_PTR(-ENOEXEC);
}
/* This is temporary: point mod into copy of data. */
mod = (void *)info->sechdrs[info->index.mod].sh_addr;
if (info->index.sym == 0) {
- printk(KERN_WARNING "%s: module has no symbols (stripped?)\n",
- mod->name);
+ pr_warn("%s: module has no symbols (stripped?)\n", mod->name);
return ERR_PTR(-ENOEXEC);
}
@@ -2255,16 +2242,15 @@ static int check_modinfo(struct module *mod, struct load_info *info)
if (err)
return err;
} else if (!same_magic(modmagic, vermagic, info->index.vers)) {
- printk(KERN_ERR "%s: version magic '%s' should be '%s'\n",
+ pr_err("%s: version magic '%s' should be '%s'\n",
mod->name, modmagic, vermagic);
return -ENOEXEC;
}
if (get_modinfo(info, "staging")) {
add_taint_module(mod, TAINT_CRAP);
- printk(KERN_WARNING "%s: module is from the staging directory,"
- " the quality is unknown, you have been warned.\n",
- mod->name);
+ pr_warn("%s: module is from the staging directory, the quality is unknown, you have been warned.\n",
+ mod->name);
}
/* Set up license info based on the info section */
@@ -2337,8 +2323,7 @@ static void find_module_sections(struct module *mod, struct load_info *info)
sizeof(*mod->extable), &mod->num_exentries);
if (section_addr(info, "__obsparm"))
- printk(KERN_WARNING "%s: Ignoring obsolete parameters\n",
- mod->name);
+ pr_warn("%s: Ignoring obsolete parameters\n", mod->name);
info->debug = section_objs(info, "__verbose",
sizeof(*info->debug), &info->num_debug);
@@ -2727,11 +2712,10 @@ SYSCALL_DEFINE3(init_module, void __user *, umod,
return ret;
}
if (ret > 0) {
- printk(KERN_WARNING
-"%s: '%s'->init suspiciously returned %d, it should follow 0/-E convention\n"
-"%s: loading module anyway...\n",
- __func__, mod->name, ret,
- __func__);
+ pr_warn(
+"%s: '%s'->init suspiciously returned %d, it should follow 0/-E convention\n%s: loading module anyway...\n",
+ __func__, mod->name, ret,
+ __func__);
dump_stack();
}
@@ -3200,11 +3184,11 @@ void print_modules(void)
/* Most callers should already have preempt disabled, but make sure */
preempt_disable();
list_for_each_entry_rcu(mod, &modules, list)
- printk(" %s%s", mod->name, module_flags(mod, buf));
+ pr_cont(" %s%s", mod->name, module_flags(mod, buf));
preempt_enable();
if (last_unloaded_module[0])
- printk(" [last unloaded: %s]", last_unloaded_module);
- printk("\n");
+ pr_cont(" [last unloaded: %s]", last_unloaded_module);
+ pr_cont("\n");
}
#ifdef CONFIG_MODVERSIONS
--
1.7.3.1.g432b3.dirty
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] kernel/module.c: Use pr_debug and other neatening
2010-10-30 23:58 [PATCH 0/2] kernel/module.c: A little neatening Joe Perches
2010-10-30 23:58 ` [PATCH 1/2] kernel/module.c: Use pr_<level> and pr_fmt Joe Perches
@ 2010-10-30 23:58 ` Joe Perches
1 sibling, 0 replies; 5+ messages in thread
From: Joe Perches @ 2010-10-30 23:58 UTC (permalink / raw)
To: linux-kernel; +Cc: Rusty Russell
Use <linux/foo> not <asm/foo>
Convert DEBUGP to pr_debug
Use 0x%llx and (unsigned long long)shdr->sh_addr
Remove static initializations to 0
checkpatch whitespace cleanups
Use temporary for sym[i].st_shndx
Move const after static
Hoist assigns from ifs
Signed-off-by: Joe Perches <joe@perches.com>
---
kernel/module.c | 197 ++++++++++++++++++++++++++++---------------------------
1 files changed, 100 insertions(+), 97 deletions(-)
diff --git a/kernel/module.c b/kernel/module.c
index 9b6b0da..d3fe6c5 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -48,9 +48,9 @@
#include <linux/string.h>
#include <linux/mutex.h>
#include <linux/rculist.h>
-#include <asm/uaccess.h>
+#include <linux/uaccess.h>
#include <asm/cacheflush.h>
-#include <asm/mmu_context.h>
+#include <linux/mmu_context.h>
#include <linux/license.h>
#include <asm/sections.h>
#include <linux/tracepoint.h>
@@ -63,12 +63,6 @@
#define CREATE_TRACE_POINTS
#include <trace/events/module.h>
-#if 0
-#define DEBUGP printk
-#else
-#define DEBUGP(fmt , a...)
-#endif
-
#ifndef ARCH_SHF_SMALL
#define ARCH_SHF_SMALL 0
#endif
@@ -91,7 +85,7 @@ struct list_head *kdb_modules = &modules; /* kdb needs the list of modules */
/* Block module loading/unloading? */
-int modules_disabled = 0;
+int modules_disabled;
/* Waiting for a module to finish initializing? */
static DECLARE_WAIT_QUEUE_HEAD(module_wq);
@@ -100,15 +94,16 @@ static BLOCKING_NOTIFIER_HEAD(module_notify_list);
/* Bounds of module allocation, for speeding __module_address.
* Protected by module_mutex. */
-static unsigned long module_addr_min = -1UL, module_addr_max = 0;
+static unsigned long module_addr_min = -1UL;
+static unsigned long module_addr_max;
-int register_module_notifier(struct notifier_block * nb)
+int register_module_notifier(struct notifier_block *nb)
{
return blocking_notifier_chain_register(&module_notify_list, nb);
}
EXPORT_SYMBOL(register_module_notifier);
-int unregister_module_notifier(struct notifier_block * nb)
+int unregister_module_notifier(struct notifier_block *nb)
{
return blocking_notifier_chain_unregister(&module_notify_list, nb);
}
@@ -165,8 +160,8 @@ static unsigned int find_sec(const struct load_info *info, const char *name)
for (i = 1; i < info->hdr->e_shnum; i++) {
Elf_Shdr *shdr = &info->sechdrs[i];
/* Alloc bit cleared means "ignore it." */
- if ((shdr->sh_flags & SHF_ALLOC)
- && strcmp(info->secstrings + shdr->sh_name, name) == 0)
+ if ((shdr->sh_flags & SHF_ALLOC) &&
+ strcmp(info->secstrings + shdr->sh_name, name) == 0)
return i;
}
return 0;
@@ -361,7 +356,7 @@ const struct kernel_symbol *find_symbol(const char *name,
return fsa.sym;
}
- DEBUGP("Failed to find symbol %s\n", name);
+ pr_debug("Failed to find symbol %s\n", name);
return NULL;
}
EXPORT_SYMBOL_GPL(find_symbol);
@@ -489,31 +484,31 @@ bool is_module_percpu_address(unsigned long addr)
#endif /* CONFIG_SMP */
-#define MODINFO_ATTR(field) \
-static void setup_modinfo_##field(struct module *mod, const char *s) \
-{ \
- mod->field = kstrdup(s, GFP_KERNEL); \
-} \
-static ssize_t show_modinfo_##field(struct module_attribute *mattr, \
- struct module *mod, char *buffer) \
-{ \
- return sprintf(buffer, "%s\n", mod->field); \
-} \
-static int modinfo_##field##_exists(struct module *mod) \
-{ \
- return mod->field != NULL; \
-} \
-static void free_modinfo_##field(struct module *mod) \
-{ \
- kfree(mod->field); \
- mod->field = NULL; \
-} \
-static struct module_attribute modinfo_##field = { \
- .attr = { .name = __stringify(field), .mode = 0444 }, \
- .show = show_modinfo_##field, \
- .setup = setup_modinfo_##field, \
- .test = modinfo_##field##_exists, \
- .free = free_modinfo_##field, \
+#define MODINFO_ATTR(field) \
+static void setup_modinfo_##field(struct module *mod, const char *s) \
+{ \
+ mod->field = kstrdup(s, GFP_KERNEL); \
+} \
+static ssize_t show_modinfo_##field(struct module_attribute *mattr, \
+ struct module *mod, char *buffer) \
+{ \
+ return sprintf(buffer, "%s\n", mod->field); \
+} \
+static int modinfo_##field##_exists(struct module *mod) \
+{ \
+ return mod->field != NULL; \
+} \
+static void free_modinfo_##field(struct module *mod) \
+{ \
+ kfree(mod->field); \
+ mod->field = NULL; \
+} \
+static struct module_attribute modinfo_##field = { \
+ .attr = { .name = __stringify(field), .mode = 0444 }, \
+ .show = show_modinfo_##field, \
+ .setup = setup_modinfo_##field, \
+ .test = modinfo_##field##_exists, \
+ .free = free_modinfo_##field, \
};
MODINFO_ATTR(version);
@@ -550,11 +545,11 @@ static int already_uses(struct module *a, struct module *b)
list_for_each_entry(use, &b->source_list, source_list) {
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;
}
}
- 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;
}
@@ -569,7 +564,7 @@ static int add_module_usage(struct module *a, struct module *b)
{
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);
if (!use) {
pr_warn("%s: out of memory loading\n", a->name);
@@ -613,7 +608,7 @@ static void module_unload_free(struct module *mod)
mutex_lock(&module_mutex);
list_for_each_entry_safe(use, tmp, &mod->target_list, target_list) {
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);
list_del(&use->source_list);
list_del(&use->target_list);
@@ -639,8 +634,7 @@ static inline int try_force_unload(unsigned int flags)
}
#endif /* CONFIG_MODULE_FORCE_UNLOAD */
-struct stopref
-{
+struct stopref {
struct module *mod;
int flags;
int *forced;
@@ -653,7 +647,8 @@ static int __try_stop_module(void *_sref)
/* If it's not unused, quit unless we're forcing. */
if (module_refcount(sref->mod) != 0) {
- if (!(*sref->forced = try_force_unload(sref->flags)))
+ *sref->forced = try_force_unload(sref->flags);
+ if (!*sref->forced)
return -EWOULDBLOCK;
}
@@ -711,7 +706,7 @@ static void wait_for_zero_refcount(struct module *mod)
/* Since we might sleep for some time, release the mutex first */
mutex_unlock(&module_mutex);
for (;;) {
- DEBUGP("Looking at refcount...\n");
+ pr_debug("Looking at refcount...\n");
set_current_state(TASK_UNINTERRUPTIBLE);
if (module_refcount(mod) == 0)
break;
@@ -753,8 +748,8 @@ SYSCALL_DEFINE2(delete_module, const char __user *, name_user,
/* Doing init or already dying? */
if (mod->state != MODULE_STATE_LIVE) {
/* FIXME: if (force), slam module count and wake up
- waiter --RR */
- DEBUGP("%s already dying\n", mod->name);
+ * waiter --RR */
+ pr_debug("%s already dying\n", mod->name);
ret = -EBUSY;
goto out;
}
@@ -807,7 +802,7 @@ static inline void print_unload_info(struct seq_file *m, struct module *mod)
seq_printf(m, " %u ", module_refcount(mod));
/* Always include a trailing , so userspace can differentiate
- between this and the old multi-field proc format. */
+ * between this and the old multi-field proc format. */
list_for_each_entry(use, &mod->source_list, source_list) {
printed_something = 1;
seq_printf(m, "%s,", use->source->name);
@@ -964,7 +959,7 @@ static unsigned long maybe_relocated(unsigned long crc,
static int check_version(Elf_Shdr *sechdrs,
unsigned int versindex,
const char *symname,
- struct module *mod,
+ struct module *mod,
const unsigned long *crc,
const struct module *crc_owner)
{
@@ -989,8 +984,8 @@ static int check_version(Elf_Shdr *sechdrs,
if (versions[i].crc == maybe_relocated(*crc, crc_owner))
return 1;
- DEBUGP("Found checksum %lX vs module %lX\n",
- maybe_relocated(*crc, crc_owner), versions[i].crc);
+ pr_debug("Found checksum %lX vs module %lX\n",
+ maybe_relocated(*crc, crc_owner), versions[i].crc);
goto bad_version;
}
@@ -1032,7 +1027,7 @@ static inline int same_magic(const char *amagic, const char *bmagic,
static inline int check_version(Elf_Shdr *sechdrs,
unsigned int versindex,
const char *symname,
- struct module *mod,
+ struct module *mod,
const unsigned long *crc,
const struct module *crc_owner)
{
@@ -1066,7 +1061,8 @@ static const struct kernel_symbol *resolve_symbol(struct module *mod,
mutex_lock(&module_mutex);
sym = find_symbol(name, &owner, &crc,
- !(mod->taints & (1 << TAINT_PROPRIETARY_MODULE)), true);
+ !(mod->taints & (1 << TAINT_PROPRIETARY_MODULE)),
+ true);
if (!sym)
goto unlock;
@@ -1120,15 +1116,13 @@ static inline bool sect_empty(const Elf_Shdr *sect)
return !(sect->sh_flags & SHF_ALLOC) || sect->sh_size == 0;
}
-struct module_sect_attr
-{
+struct module_sect_attr {
struct module_attribute mattr;
char *name;
unsigned long address;
};
-struct module_sect_attrs
-{
+struct module_sect_attrs {
struct attribute_group grp;
unsigned int nsections;
struct module_sect_attr attrs[0];
@@ -1201,7 +1195,7 @@ static void add_sect_attrs(struct module *mod, const struct load_info *info)
mod->sect_attrs = sect_attrs;
return;
- out:
+out:
free_sect_attrs(sect_attrs);
}
@@ -1305,7 +1299,7 @@ static void add_notes_attrs(struct module *mod, const struct load_info *info)
mod->notes_attrs = notes_attrs;
return;
- out:
+out:
free_notes_attrs(notes_attrs, i);
}
@@ -1382,7 +1376,8 @@ static int module_add_modinfo_attrs(struct module *mod)
(attr->test && attr->test(mod))) {
memcpy(temp_attr, attr, sizeof(*temp_attr));
sysfs_attr_init(&temp_attr->attr);
- error = sysfs_create_file(&mod->mkobj.kobj,&temp_attr->attr);
+ error = sysfs_create_file(&mod->mkobj.kobj,
+ &temp_attr->attr);
++temp_attr;
}
}
@@ -1398,7 +1393,7 @@ static void module_remove_modinfo_attrs(struct module *mod)
/* pick a field to test for end of list */
if (!attr->attr.name)
break;
- sysfs_remove_file(&mod->mkobj.kobj,&attr->attr);
+ sysfs_remove_file(&mod->mkobj.kobj, &attr->attr);
if (attr->free)
attr->free(mod);
}
@@ -1635,12 +1630,12 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
for (i = 1; i < symsec->sh_size / sizeof(Elf_Sym); i++) {
const char *name = info->strtab + sym[i].st_name;
-
- switch (sym[i].st_shndx) {
+ typeof (sym[i].st_shndx) index = sym[i].st_shndx;
+ switch (index) {
case SHN_COMMON:
/* We compiled with -fno-common. These are not
supposed to happen. */
- DEBUGP("Common symbol: %s\n", name);
+ pr_debug("Common symbol: %s\n", name);
pr_info("%s: please compile with -fno-common\n",
mod->name);
ret = -ENOEXEC;
@@ -1648,8 +1643,8 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
case SHN_ABS:
/* Don't need to do anything */
- DEBUGP("Absolute symbol: 0x%08lx\n",
- (long)sym[i].st_value);
+ pr_debug("Absolute symbol: 0x%08lx\n",
+ (long)sym[i].st_value);
break;
case SHN_UNDEF:
@@ -1671,10 +1666,10 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
default:
/* Divert to percpu allocation if a percpu var. */
- if (sym[i].st_shndx == info->index.pcpu)
+ if (index == info->index.pcpu)
secbase = (unsigned long)mod_percpu(mod);
else
- secbase = info->sechdrs[sym[i].st_shndx].sh_addr;
+ secbase = info->sechdrs[index].sh_addr;
sym[i].st_value += secbase;
break;
}
@@ -1738,7 +1733,7 @@ static long get_offset(struct module *mod, unsigned int *size,
belongs in init. */
static void layout_sections(struct module *mod, struct load_info *info)
{
- static unsigned long const masks[][2] = {
+ static const unsigned long masks[][2] = {
/* NOTE: all executable code must be the first section
* in this array; otherwise modify the text_size
* finder in the two loops below */
@@ -1752,7 +1747,7 @@ static void layout_sections(struct module *mod, struct load_info *info)
for (i = 0; i < info->hdr->e_shnum; i++)
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 (i = 0; i < info->hdr->e_shnum; ++i) {
Elf_Shdr *s = &info->sechdrs[i];
@@ -1764,13 +1759,13 @@ static void layout_sections(struct module *mod, struct load_info *info)
|| strstarts(sname, ".init"))
continue;
s->sh_entsize = get_offset(mod, &mod->core_size, s, i);
- DEBUGP("\t%s\n", name);
+ pr_debug("\t%s\n", sname);
}
if (m == 0)
mod->core_text_size = mod->core_size;
}
- DEBUGP("Init section allocation order:\n");
+ pr_debug("Init section allocation order:\n");
for (m = 0; m < ARRAY_SIZE(masks); ++m) {
for (i = 0; i < info->hdr->e_shnum; ++i) {
Elf_Shdr *s = &info->sechdrs[i];
@@ -1783,7 +1778,7 @@ static void layout_sections(struct module *mod, struct load_info *info)
continue;
s->sh_entsize = (get_offset(mod, &mod->init_size, s, i)
| INIT_OFFSET_MASK);
- DEBUGP("\t%s\n", sname);
+ pr_debug("\t%s\n", sname);
}
if (m == 0)
mod->init_text_size = mod->init_size;
@@ -1925,7 +1920,7 @@ static char elf_type(const Elf_Sym *sym, const struct load_info *info)
}
static bool is_core_symbol(const Elf_Sym *src, const Elf_Shdr *sechdrs,
- unsigned int shnum)
+ unsigned int shnum)
{
const Elf_Shdr *sec;
@@ -1956,7 +1951,7 @@ static void layout_symtab(struct module *mod, struct load_info *info)
symsect->sh_flags |= SHF_ALLOC;
symsect->sh_entsize = get_offset(mod, &mod->init_size, symsect,
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;
nsrc = symsect->sh_size / sizeof(*src);
@@ -1978,7 +1973,7 @@ static void layout_symtab(struct module *mod, struct load_info *info)
strsect->sh_flags |= SHF_ALLOC;
strsect->sh_entsize = get_offset(mod, &mod->init_size, strsect,
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);
/* Append room for core symbols' strings at end of core part. */
info->stroffs = mod->core_size;
@@ -2364,7 +2359,7 @@ static int move_module(struct module *mod, struct load_info *info)
mod->module_init = ptr;
/* 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++) {
void *dest;
Elf_Shdr *shdr = &info->sechdrs[i];
@@ -2382,8 +2377,9 @@ static int move_module(struct module *mod, struct load_info *info)
memcpy(dest, (void *)shdr->sh_addr, shdr->sh_size);
/* Update sh_addr to point to copy in image. */
shdr->sh_addr = (unsigned long)dest;
- DEBUGP("\t0x%lx %s\n",
- shdr->sh_addr, info->secstrings + shdr->sh_name);
+ pr_debug("\t0x%llx %s\n",
+ (unsigned long long)shdr->sh_addr,
+ info->secstrings + shdr->sh_name);
}
return 0;
@@ -2478,8 +2474,9 @@ static struct module *layout_and_allocate(struct load_info *info)
special cases for the architectures. */
layout_sections(mod, info);
- info->strmap = kzalloc(BITS_TO_LONGS(info->sechdrs[info->index.str].sh_size)
- * sizeof(long), GFP_KERNEL);
+ info->strmap =
+ kzalloc(BITS_TO_LONGS(info->sechdrs[info->index.str].sh_size)
+ * sizeof(long), GFP_KERNEL);
if (!info->strmap) {
err = -ENOMEM;
goto free_percpu;
@@ -2539,8 +2536,7 @@ static struct module *load_module(void __user *umod,
struct module *mod;
long err;
- DEBUGP("load_module: umod=%p, len=%lu, uargs=%p\n",
- umod, len, uargs);
+ pr_debug("load_module: umod=%p, len=%lu, uargs=%p\n", umod, len, uargs);
/* Copy in the blobs from userspace, check they are vaguely sane. */
err = copy_and_check(&info, umod, len, uargs);
@@ -2700,8 +2696,8 @@ SYSCALL_DEFINE3(init_module, void __user *, umod,
if (mod->init != NULL)
ret = do_one_initcall(mod->init);
if (ret < 0) {
- /* Init routine failed: abort. Try to protect us from
- buggy refcounters. */
+ /* Init routine failed: abort.
+ * Try to protect us from buggy refcounters. */
mod->state = MODULE_STATE_GOING;
synchronize_sched();
module_put(mod);
@@ -2725,7 +2721,8 @@ SYSCALL_DEFINE3(init_module, void __user *, umod,
blocking_notifier_call_chain(&module_notify_list,
MODULE_STATE_LIVE, mod);
- /* We need to finish all async code before the module init sequence is done */
+ /* We need to finish all async code before the module init sequence
+ * is done */
async_synchronize_full();
mutex_lock(&module_mutex);
@@ -2787,12 +2784,14 @@ static const char *get_ksymbol(struct module *mod,
if (mod->symtab[i].st_value <= addr
&& mod->symtab[i].st_value > mod->symtab[best].st_value
&& *(mod->strtab + mod->symtab[i].st_name) != '\0'
- && !is_arm_mapping_symbol(mod->strtab + mod->symtab[i].st_name))
+ && !is_arm_mapping_symbol(mod->strtab +
+ mod->symtab[i].st_name))
best = i;
if (mod->symtab[i].st_value > addr
&& mod->symtab[i].st_value < nextval
&& *(mod->strtab + mod->symtab[i].st_name) != '\0'
- && !is_arm_mapping_symbol(mod->strtab + mod->symtab[i].st_name))
+ && !is_arm_mapping_symbol(mod->strtab +
+ mod->symtab[i].st_name))
nextval = mod->symtab[i].st_value;
}
@@ -2929,15 +2928,19 @@ unsigned long module_kallsyms_lookup_name(const char *name)
/* Don't lock: we're in enough trouble already. */
preempt_disable();
- if ((colon = strchr(name, ':')) != NULL) {
+ colon = strchr(name, ':');
+ if (colon != NULL) {
*colon = '\0';
- if ((mod = find_module(name)) != NULL)
+ mod = find_module(name);
+ if (mod != NULL)
ret = mod_find_symname(mod, colon+1);
*colon = ':';
} else {
- list_for_each_entry_rcu(mod, &modules, list)
- if ((ret = mod_find_symname(mod, name)) != 0)
+ list_for_each_entry_rcu(mod, &modules, list) {
+ ret = mod_find_symname(mod, name);
+ if (ret != 0)
break;
+ }
}
preempt_enable();
return ret;
@@ -3025,8 +3028,8 @@ static int m_show(struct seq_file *m, void *p)
/* Informative for users. */
seq_printf(m, " %s",
- mod->state == MODULE_STATE_GOING ? "Unloading":
- mod->state == MODULE_STATE_COMING ? "Loading":
+ mod->state == MODULE_STATE_GOING ? "Unloading" :
+ mod->state == MODULE_STATE_COMING ? "Loading" :
"Live");
/* Used by oprofile and other similar tools. */
seq_printf(m, " 0x%p", mod->module_core);
--
1.7.3.1.g432b3.dirty
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] kernel/module.c: Use pr_<level> and pr_fmt
2010-10-30 23:58 ` [PATCH 1/2] kernel/module.c: Use pr_<level> and pr_fmt Joe Perches
@ 2010-10-31 4:04 ` Arnaud Lacombe
2010-10-31 4:20 ` Joe Perches
0 siblings, 1 reply; 5+ messages in thread
From: Arnaud Lacombe @ 2010-10-31 4:04 UTC (permalink / raw)
To: Joe Perches; +Cc: linux-kernel, Rusty Russell
Hi,
[not that I'm fond of getting my mailbox full of whitespace patches, but...]
On Sat, Oct 30, 2010 at 7:58 PM, Joe Perches <joe@perches.com> wrote:
> Add missing KERN_CONT to printks
> Convert to pr_<level>
> Add "#define pr_fmt(fmt) fmt" so pr_<level> uses are not prefixed.
> Coalesce long formats for easier grep.
>
... until someone submit a new patch which would move back the the
line length to 80 char because check_<foo>.pl complained or because
they read `Documentation/CodingStyle'. That's an interresting way to
endlessly submit patches without any functional improvement.
- Arnaud
> Signed-off-by: Joe Perches <joe@perches.com>
> ---
> kernel/module.c | 108 +++++++++++++++++++++++-------------------------------
> 1 files changed, 46 insertions(+), 62 deletions(-)
>
> diff --git a/kernel/module.c b/kernel/module.c
> index 437a74a..9b6b0da 100644
> --- a/kernel/module.c
> +++ b/kernel/module.c
> @@ -16,6 +16,9 @@
> along with this program; if not, write to the Free Software
> Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
> */
> +
> +#define pr_fmt(fmt) fmt
> +
> #include <linux/module.h>
> #include <linux/moduleloader.h>
> #include <linux/ftrace_event.h>
> @@ -315,26 +318,18 @@ static bool find_symbol_in_section(const struct symsearch *syms,
> if (syms->licence == GPL_ONLY)
> return false;
> if (syms->licence == WILL_BE_GPL_ONLY && fsa->warn) {
> - printk(KERN_WARNING "Symbol %s is being used "
> - "by a non-GPL module, which will not "
> - "be allowed in the future\n", fsa->name);
> - printk(KERN_WARNING "Please see the file "
> - "Documentation/feature-removal-schedule.txt "
> - "in the kernel source tree for more details.\n");
> + pr_warn("Symbol %s is being used by a non-GPL module, which will not be allowed in the future\n",
> + fsa->name);
> + pr_warn("Please see the file Documentation/feature-removal-schedule.txt in the kernel source tree for more details.\n");
> }
> }
>
> #ifdef CONFIG_UNUSED_SYMBOLS
> if (syms->unused && fsa->warn) {
> - printk(KERN_WARNING "Symbol %s is marked as UNUSED, "
> - "however this module is using it.\n", fsa->name);
> - printk(KERN_WARNING
> - "This symbol will go away in the future.\n");
> - printk(KERN_WARNING
> - "Please evalute if this is the right api to use and if "
> - "it really is, submit a report the linux kernel "
> - "mailinglist together with submitting your code for "
> - "inclusion.\n");
> + pr_warn("Symbol %s is marked as UNUSED, however this module is using it.\n",
> + fsa->name);
> + pr_warn("This symbol will go away in the future.\n");
> + pr_warn("Please evalute if this is the right api to use and if it really is, submit a report to the linux kernel mailing list together with submitting your code for inclusion.\n");
> }
> #endif
>
> @@ -395,16 +390,15 @@ static int percpu_modalloc(struct module *mod,
> unsigned long size, unsigned long align)
> {
> if (align > PAGE_SIZE) {
> - printk(KERN_WARNING "%s: per-cpu alignment %li > %li\n",
> - mod->name, align, PAGE_SIZE);
> + pr_warn("%s: per-cpu alignment %li > %li\n",
> + mod->name, align, PAGE_SIZE);
> align = PAGE_SIZE;
> }
>
> mod->percpu = __alloc_reserved_percpu(size, align);
> if (!mod->percpu) {
> - printk(KERN_WARNING
> - "%s: Could not allocate %lu bytes percpu data\n",
> - mod->name, size);
> + pr_warn("%s: Could not allocate %lu bytes percpu data\n",
> + mod->name, size);
> return -ENOMEM;
> }
> mod->percpu_size = size;
> @@ -578,7 +572,7 @@ static int add_module_usage(struct module *a, struct module *b)
> DEBUGP("Allocating new usage for %s.\n", a->name);
> use = kmalloc(sizeof(*use), GFP_ATOMIC);
> if (!use) {
> - printk(KERN_WARNING "%s: out of memory loading\n", a->name);
> + pr_warn("%s: out of memory loading\n", a->name);
> return -ENOMEM;
> }
>
> @@ -947,8 +941,7 @@ static int try_to_force_load(struct module *mod, const char *reason)
> {
> #ifdef CONFIG_MODULE_FORCE_LOAD
> if (!test_taint(TAINT_FORCED_MODULE))
> - printk(KERN_WARNING "%s: %s: kernel tainted.\n",
> - mod->name, reason);
> + pr_warn("%s: %s: kernel tainted\n", mod->name, reason);
> add_taint_module(mod, TAINT_FORCED_MODULE);
> return 0;
> #else
> @@ -1001,13 +994,12 @@ static int check_version(Elf_Shdr *sechdrs,
> goto bad_version;
> }
>
> - printk(KERN_WARNING "%s: no symbol version for %s\n",
> - mod->name, symname);
> + pr_warn("%s: no symbol version for %s\n", mod->name, symname);
> return 0;
>
> bad_version:
> - printk("%s: disagrees about version of symbol %s\n",
> - mod->name, symname);
> + pr_warn("%s: disagrees about version of symbol %s\n",
> + mod->name, symname);
> return 0;
> }
>
> @@ -1110,8 +1102,8 @@ resolve_symbol_wait(struct module *mod,
> !IS_ERR(ksym = resolve_symbol(mod, info, name, owner))
> || PTR_ERR(ksym) != -EBUSY,
> 30 * HZ) <= 0) {
> - printk(KERN_WARNING "%s: gave up waiting for init of module %s.\n",
> - mod->name, owner);
> + pr_warn("%s: gave up waiting for init of module %s\n",
> + mod->name, owner);
> }
> return ksym;
> }
> @@ -1419,15 +1411,14 @@ static int mod_sysfs_init(struct module *mod)
> struct kobject *kobj;
>
> if (!module_sysfs_initialized) {
> - printk(KERN_ERR "%s: module sysfs not initialized\n",
> - mod->name);
> + pr_err("%s: module sysfs not initialized\n", mod->name);
> err = -EINVAL;
> goto out;
> }
>
> kobj = kset_find_obj(module_kset, mod->name);
> if (kobj) {
> - printk(KERN_ERR "%s: module is already loaded\n", mod->name);
> + pr_err("%s: module is already loaded\n", mod->name);
> kobject_put(kobj);
> err = -EINVAL;
> goto out;
> @@ -1623,9 +1614,7 @@ static int verify_export_symbols(struct module *mod)
> for (i = 0; i < ARRAY_SIZE(arr); i++) {
> for (s = arr[i].sym; s < arr[i].sym + arr[i].num; s++) {
> if (find_symbol(s->name, &owner, NULL, true, false)) {
> - printk(KERN_ERR
> - "%s: exports duplicate symbol %s"
> - " (owned by %s)\n",
> + pr_err("%s: exports duplicate symbol %s (owned by %s)\n",
> mod->name, s->name, module_name(owner));
> return -ENOEXEC;
> }
> @@ -1652,8 +1641,8 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
> /* We compiled with -fno-common. These are not
> supposed to happen. */
> DEBUGP("Common symbol: %s\n", name);
> - printk("%s: please compile with -fno-common\n",
> - mod->name);
> + pr_info("%s: please compile with -fno-common\n",
> + mod->name);
> ret = -ENOEXEC;
> break;
>
> @@ -1675,8 +1664,8 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
> if (!ksym && ELF_ST_BIND(sym[i].st_info) == STB_WEAK)
> break;
>
> - printk(KERN_WARNING "%s: Unknown symbol %s (err %li)\n",
> - mod->name, name, PTR_ERR(ksym));
> + pr_warn("%s: Unknown symbol %s (err %li)\n",
> + mod->name, name, PTR_ERR(ksym));
> ret = PTR_ERR(ksym) ?: -ENOENT;
> break;
>
> @@ -1808,8 +1797,8 @@ static void set_license(struct module *mod, const char *license)
>
> if (!license_is_gpl_compatible(license)) {
> if (!test_taint(TAINT_PROPRIETARY_MODULE))
> - printk(KERN_WARNING "%s: module license '%s' taints "
> - "kernel.\n", mod->name, license);
> + pr_warn("%s: module license '%s' taints kernel\n",
> + mod->name, license);
> add_taint_module(mod, TAINT_PROPRIETARY_MODULE);
> }
> }
> @@ -2048,8 +2037,8 @@ static void dynamic_debug_setup(struct _ddebug *debug, unsigned int num)
> return;
> #ifdef CONFIG_DYNAMIC_DEBUG
> if (ddebug_add_module(debug, num, debug->modname))
> - printk(KERN_ERR "dynamic debug error adding module: %s\n",
> - debug->modname);
> + pr_err("dynamic debug error adding module: %s\n",
> + debug->modname);
> #endif
> }
>
> @@ -2163,8 +2152,7 @@ static int rewrite_section_headers(struct load_info *info)
> Elf_Shdr *shdr = &info->sechdrs[i];
> if (shdr->sh_type != SHT_NOBITS
> && info->len < shdr->sh_offset + shdr->sh_size) {
> - printk(KERN_ERR "Module len %lu truncated\n",
> - info->len);
> + pr_err("Module len %lu truncated\n", info->len);
> return -ENOEXEC;
> }
>
> @@ -2223,15 +2211,14 @@ static struct module *setup_load_info(struct load_info *info)
>
> info->index.mod = find_sec(info, ".gnu.linkonce.this_module");
> if (!info->index.mod) {
> - printk(KERN_WARNING "No module found in object\n");
> + pr_warn("No module found in object\n");
> return ERR_PTR(-ENOEXEC);
> }
> /* This is temporary: point mod into copy of data. */
> mod = (void *)info->sechdrs[info->index.mod].sh_addr;
>
> if (info->index.sym == 0) {
> - printk(KERN_WARNING "%s: module has no symbols (stripped?)\n",
> - mod->name);
> + pr_warn("%s: module has no symbols (stripped?)\n", mod->name);
> return ERR_PTR(-ENOEXEC);
> }
>
> @@ -2255,16 +2242,15 @@ static int check_modinfo(struct module *mod, struct load_info *info)
> if (err)
> return err;
> } else if (!same_magic(modmagic, vermagic, info->index.vers)) {
> - printk(KERN_ERR "%s: version magic '%s' should be '%s'\n",
> + pr_err("%s: version magic '%s' should be '%s'\n",
> mod->name, modmagic, vermagic);
> return -ENOEXEC;
> }
>
> if (get_modinfo(info, "staging")) {
> add_taint_module(mod, TAINT_CRAP);
> - printk(KERN_WARNING "%s: module is from the staging directory,"
> - " the quality is unknown, you have been warned.\n",
> - mod->name);
> + pr_warn("%s: module is from the staging directory, the quality is unknown, you have been warned.\n",
> + mod->name);
> }
>
> /* Set up license info based on the info section */
> @@ -2337,8 +2323,7 @@ static void find_module_sections(struct module *mod, struct load_info *info)
> sizeof(*mod->extable), &mod->num_exentries);
>
> if (section_addr(info, "__obsparm"))
> - printk(KERN_WARNING "%s: Ignoring obsolete parameters\n",
> - mod->name);
> + pr_warn("%s: Ignoring obsolete parameters\n", mod->name);
>
> info->debug = section_objs(info, "__verbose",
> sizeof(*info->debug), &info->num_debug);
> @@ -2727,11 +2712,10 @@ SYSCALL_DEFINE3(init_module, void __user *, umod,
> return ret;
> }
> if (ret > 0) {
> - printk(KERN_WARNING
> -"%s: '%s'->init suspiciously returned %d, it should follow 0/-E convention\n"
> -"%s: loading module anyway...\n",
> - __func__, mod->name, ret,
> - __func__);
> + pr_warn(
> +"%s: '%s'->init suspiciously returned %d, it should follow 0/-E convention\n%s: loading module anyway...\n",
> + __func__, mod->name, ret,
> + __func__);
> dump_stack();
> }
>
> @@ -3200,11 +3184,11 @@ void print_modules(void)
> /* Most callers should already have preempt disabled, but make sure */
> preempt_disable();
> list_for_each_entry_rcu(mod, &modules, list)
> - printk(" %s%s", mod->name, module_flags(mod, buf));
> + pr_cont(" %s%s", mod->name, module_flags(mod, buf));
> preempt_enable();
> if (last_unloaded_module[0])
> - printk(" [last unloaded: %s]", last_unloaded_module);
> - printk("\n");
> + pr_cont(" [last unloaded: %s]", last_unloaded_module);
> + pr_cont("\n");
> }
>
> #ifdef CONFIG_MODVERSIONS
> --
> 1.7.3.1.g432b3.dirty
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] kernel/module.c: Use pr_<level> and pr_fmt
2010-10-31 4:04 ` Arnaud Lacombe
@ 2010-10-31 4:20 ` Joe Perches
0 siblings, 0 replies; 5+ messages in thread
From: Joe Perches @ 2010-10-31 4:20 UTC (permalink / raw)
To: Arnaud Lacombe; +Cc: linux-kernel, Rusty Russell
On Sun, 2010-10-31 at 00:04 -0400, Arnaud Lacombe wrote:
> [not that I'm fond of getting my mailbox full of whitespace patches, but...]
> On Sat, Oct 30, 2010 at 7:58 PM, Joe Perches <joe@perches.com> wrote:
> > Add missing KERN_CONT to printks
> > Convert to pr_<level>
> > Add "#define pr_fmt(fmt) fmt" so pr_<level> uses are not prefixed.
> > Coalesce long formats for easier grep.
Mostly it's a way to add #define pr_fmt(fmt) fmt
in this file so that a different default for
pr_fmt could be used in kernel.h later.
This patch was sent to lkml and not directly
to you. As you find this stuff uninteresting I
suggest you unsubscribe and read LKML using any
of the various web services like lkml.org and
read only what you find useful.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2010-10-31 4:20 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-30 23:58 [PATCH 0/2] kernel/module.c: A little neatening Joe Perches
2010-10-30 23:58 ` [PATCH 1/2] kernel/module.c: Use pr_<level> and pr_fmt Joe Perches
2010-10-31 4:04 ` Arnaud Lacombe
2010-10-31 4:20 ` Joe Perches
2010-10-30 23:58 ` [PATCH 2/2] kernel/module.c: Use pr_debug and other neatening Joe Perches
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).