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;
                }
 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;
        }
 
                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, ",");
        } 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;
        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;
        }
 #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;
                }