Commit af7f2158 authored by Jim Cromie's avatar Jim Cromie Committed by Greg Kroah-Hartman

drivers-core: make structured logging play nice with dynamic-debug

commit c4e00daa changed __dev_printk
in a way that broke dynamic-debug's ability to control the dynamic
prefix of dev_dbg(dev,..), but not dev_dbg(NULL,..) or pr_debug(..),
which is why it wasnt noticed sooner.

When dev==NULL, __dev_printk() just calls printk(), which just works.
But otherwise, it assumed that level was always a string like "<L>"
and just plucked out the 'L', ignoring the rest.  However,
dynamic_emit_prefix() adds "[tid] module:func:line:" to the string,
those additions all got lost.
Signed-off-by: default avatarJim Cromie <jim.cromie@gmail.com>
Acked-by: default avatarJason Baron <jbaron@redhat.com>
Cc: stable <stable@vger.kernel.org>
Cc: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 0d7614f0
...@@ -1865,6 +1865,7 @@ int __dev_printk(const char *level, const struct device *dev, ...@@ -1865,6 +1865,7 @@ int __dev_printk(const char *level, const struct device *dev,
struct va_format *vaf) struct va_format *vaf)
{ {
char dict[128]; char dict[128];
const char *level_extra = "";
size_t dictlen = 0; size_t dictlen = 0;
const char *subsys; const char *subsys;
...@@ -1911,10 +1912,14 @@ int __dev_printk(const char *level, const struct device *dev, ...@@ -1911,10 +1912,14 @@ int __dev_printk(const char *level, const struct device *dev,
"DEVICE=+%s:%s", subsys, dev_name(dev)); "DEVICE=+%s:%s", subsys, dev_name(dev));
} }
skip: skip:
if (level[3])
level_extra = &level[3]; /* skip past "<L>" */
return printk_emit(0, level[1] - '0', return printk_emit(0, level[1] - '0',
dictlen ? dict : NULL, dictlen, dictlen ? dict : NULL, dictlen,
"%s %s: %pV", "%s %s: %s%pV",
dev_driver_string(dev), dev_name(dev), vaf); dev_driver_string(dev), dev_name(dev),
level_extra, vaf);
} }
EXPORT_SYMBOL(__dev_printk); EXPORT_SYMBOL(__dev_printk);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment