Messages in this thread | | | Date | Sat, 28 Sep 2013 14:00:04 -0400 | From | Prarit Bhargava <> | Subject | Re: [PATCH] RFC: Introduce FW_INFO* functions |
| |
On 09/27/2013 11:40 AM, Joe Perches wrote: > On Fri, 2013-09-27 at 09:22 -0400, Prarit Bhargava wrote: >> I'm proposing with this patch to do something similar to the WARN() >> mechanism that is currently implemented in the kernel. This >> patchset introduces FW_INFO() and FW_INFO_DEV() which logs output > > My first thought was "how ugly". > There must be a better way than scraping dmesg output.
I am in no way married to this patch. If anyone has a better idea I'd like to hear it. The dmesg log is the place that sysadmins are used to looking for it -- it is the kernel that discovers and reports these issues. AFAICT we've always reported FW problems in the kernel log.
> >> diff --git a/kernel/panic.c b/kernel/panic.c > [] >> @@ -445,6 +446,29 @@ void warn_slowpath_fmt_taint(const char *file, int line, >> } >> EXPORT_SYMBOL(warn_slowpath_fmt_taint); >> >> +void warn_slowpath_fmt_dev(const char *file, int line, >> + struct device *dev, const char *fmt, ...) >> +{ >> + struct slowpath_args args; >> + >> + pr_info("[Firmware Info]: "); >> + if (dev) >> + pr_cont("%s %s: ", >> + dev_driver_string(dev), dev_name(dev)); >> + pr_cont("at %s:%d ", file, line); >> + >> + args.fmt = fmt; >> + va_start(args.args, fmt); >> + vprintk(args.fmt, args.args); >> + va_end(args.args); >> + if (dump_hardware_arch_desc()) >> + pr_info("[Firmware Info]: %s\n", dump_hardware_arch_desc()); >> + else >> + pr_info("[Firmware Info]: Hardware Unidentified\n"); >> +} >> +EXPORT_SYMBOL(warn_slowpath_fmt_dev); > > This bit should just use %pV and a single printk to > avoid any possible message interleaving. >
Ah ... of course. I'll definitely do that in a future patch.
Thanks for looking at this Joe.
P.
| |