On 9/25/20 9:19 AM, Tony Asleson wrote: > Ideally block related code would standardize on using dev_printk, > but dev_printk does change the user visible messages which is > questionable. Adding this function which adds the structured > key/value durable name to the log entry. It has the > same signature as dev_printk. In the future, code that > is using this could easily transition to dev_printk when that > becomes workable. > > Signed-off-by: Tony Asleson <tasleson@xxxxxxxxxx> > --- > drivers/base/core.c | 15 +++++++++++++++ > include/linux/dev_printk.h | 5 +++++ > 2 files changed, 20 insertions(+) Hi, I suggest that these 2 new function names should be printk_durable_name() and printk_durable_name_ratelimited() Those names would be closer to the printk* family of function names. Of course, you can find exceptions to this, like dev_printk(), but that is in the dev_*() family of function names. > diff --git a/drivers/base/core.c b/drivers/base/core.c > index 72a93b041a2d..447b0ebc93af 100644 > --- a/drivers/base/core.c > +++ b/drivers/base/core.c > @@ -3975,6 +3975,21 @@ void dev_printk(const char *level, const struct device *dev, > } > EXPORT_SYMBOL(dev_printk); > > +void durable_name_printk(const char *level, const struct device *dev, > + const char *fmt, ...) > +{ > + size_t dictlen; > + va_list args; > + char dict[288]; > + > + dictlen = dev_durable_name(dev, dict, sizeof(dict)); > + > + va_start(args, fmt); > + vprintk_emit(0, level[1] - '0', dict, dictlen, fmt, args); > + va_end(args); > +} > +EXPORT_SYMBOL(durable_name_printk); > + > #define define_dev_printk_level(func, kern_level) \ > void func(const struct device *dev, const char *fmt, ...) \ > { \ > diff --git a/include/linux/dev_printk.h b/include/linux/dev_printk.h > index 3028b644b4fb..4d57b940b692 100644 > --- a/include/linux/dev_printk.h > +++ b/include/linux/dev_printk.h > @@ -32,6 +32,11 @@ int dev_printk_emit(int level, const struct device *dev, const char *fmt, ...); > __printf(3, 4) __cold > void dev_printk(const char *level, const struct device *dev, > const char *fmt, ...); > + > +__printf(3, 4) __cold > +void durable_name_printk(const char *level, const struct device *dev, > + const char *fmt, ...); > + > __printf(2, 3) __cold > void _dev_emerg(const struct device *dev, const char *fmt, ...); > __printf(2, 3) __cold > Thanks. -- ~Randy