2012-05-03 19:13:12

by Jim Cromie

[permalink] [raw]
Subject: [PATCH 2/3] params: replace printk(KERN_<LVL>...) with pr_<lvl>(...)

I left 1 printk which uses __FILE__, __LINE__ explicitly, which should
not be subject to generic preferences expressed via pr_fmt().

+ tweaks suggested by Joe Perches:
- add doing to irq-enabled warning, like others. It wont happen often..
- change sysfs failure crit, not just err, make it 1 line in logs.

cc: Joe Perches <[email protected]>
Signed-off-by: Jim Cromie <[email protected]>
---
kernel/params.c | 34 +++++++++++++---------------------
1 files changed, 13 insertions(+), 21 deletions(-)

diff --git a/kernel/params.c b/kernel/params.c
index be78c90..2332e0b 100644
--- a/kernel/params.c
+++ b/kernel/params.c
@@ -201,25 +201,22 @@ int parse_args(const char *doing,
irq_was_disabled = irqs_disabled();
ret = parse_one(param, val, doing, params, num,
min_level, max_level, unknown);
- if (irq_was_disabled && !irqs_disabled()) {
- printk(KERN_WARNING "parse_args(): option '%s' enabled "
- "irq's!\n", param);
- }
+ if (irq_was_disabled && !irqs_disabled())
+ pr_warn("%s: option '%s' enabled irq's!\n",
+ doing, param);
+
switch (ret) {
case -ENOENT:
- printk(KERN_ERR "%s: Unknown parameter `%s'\n",
- doing, param);
+ pr_err("%s: Unknown parameter `%s'\n", doing, param);
return ret;
case -ENOSPC:
- printk(KERN_ERR
- "%s: `%s' too large for parameter `%s'\n",
+ pr_err("%s: `%s' too large for parameter `%s'\n",
doing, val ?: "", param);
return ret;
case 0:
break;
default:
- printk(KERN_ERR
- "%s: `%s' invalid for parameter `%s'\n",
+ pr_err("%s: `%s' invalid for parameter `%s'\n",
doing, val ?: "", param);
return ret;
}
@@ -266,8 +263,7 @@ STANDARD_PARAM_DEF(ulong, unsigned long, "%lu", unsigned long, strict_strtoul);
int param_set_charp(const char *val, const struct kernel_param *kp)
{
if (strlen(val) > 1024) {
- printk(KERN_ERR "%s: string parameter too long\n",
- kp->name);
+ pr_err("%s: string parameter too long\n", kp->name);
return -ENOSPC;
}

@@ -403,8 +399,7 @@ static int param_array(const char *name,
int len;

if (*num == max) {
- printk(KERN_ERR "%s: can only take %i arguments\n",
- name, max);
+ pr_err("%s: can only take %i arguments\n", name, max);
return -EINVAL;
}
len = strcspn(val, ",");
@@ -423,8 +418,7 @@ static int param_array(const char *name,
} while (save == ',');

if (*num < min) {
- printk(KERN_ERR "%s: needs at least %i arguments\n",
- name, min);
+ pr_err("%s: needs at least %i arguments\n", name, min);
return -EINVAL;
}
return 0;
@@ -483,7 +477,7 @@ int param_set_copystring(const char *val, const struct kernel_param *kp)
const struct kparam_string *kps = kp->str;

if (strlen(val)+1 > kps->maxlen) {
- printk(KERN_ERR "%s: string doesn't fit in %u chars.\n",
+ pr_err("%s: string doesn't fit in %u chars.\n",
kp->name, kps->maxlen-1);
return -ENOSPC;
}
@@ -753,11 +747,9 @@ static struct module_kobject * __init locate_module_kobject(const char *name)
#endif
if (err) {
kobject_put(&mk->kobj);
- printk(KERN_ERR
- "Module '%s' failed add to sysfs, error number %d\n",
+ pr_crit("Adding module '%s' to sysfs failed (%d), "
+ "the system may be unstable.\n",
name, err);
- printk(KERN_ERR
- "The system will be unstable now.\n");
return NULL;
}

--
1.7.8.1


2012-05-03 19:23:56

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH 2/3] params: replace printk(KERN_<LVL>...) with pr_<lvl>(...)

On Thu, 2012-05-03 at 13:12 -0600, Jim Cromie wrote:
> I left 1 printk which uses __FILE__, __LINE__ explicitly, which should
> not be subject to generic preferences expressed via pr_fmt().
[]
> diff --git a/kernel/params.c b/kernel/params.c
[]
> @@ -753,11 +747,9 @@ static struct module_kobject * __init locate_module_kobject(const char *name)
> #endif
> if (err) {
> kobject_put(&mk->kobj);
> - printk(KERN_ERR
> - "Module '%s' failed add to sysfs, error number %d\n",
> + pr_crit("Adding module '%s' to sysfs failed (%d), "
> + "the system may be unstable.\n",
> name, err);
> - printk(KERN_ERR
> - "The system will be unstable now.\n");
> return NULL;
> }
>

It'd be nicer to coalesce the formats and not worry about 80 columns.
Coalesced formats are easier to find via grep.

pr_crit("Adding module '%s' to sysfs failed (%d), the system may be unstable\n",