xref: /openbmc/linux/fs/ubifs/misc.c (revision c38c5a7f)
1b2441318SGreg Kroah-Hartman // SPDX-License-Identifier: GPL-2.0
23e7f2c51SJoe Perches #include <linux/kernel.h>
33e7f2c51SJoe Perches #include "ubifs.h"
43e7f2c51SJoe Perches 
53e7f2c51SJoe Perches /* Normal UBIFS messages */
ubifs_msg(const struct ubifs_info * c,const char * fmt,...)63e7f2c51SJoe Perches void ubifs_msg(const struct ubifs_info *c, const char *fmt, ...)
73e7f2c51SJoe Perches {
83e7f2c51SJoe Perches 	struct va_format vaf;
93e7f2c51SJoe Perches 	va_list args;
103e7f2c51SJoe Perches 
113e7f2c51SJoe Perches 	va_start(args, fmt);
123e7f2c51SJoe Perches 
133e7f2c51SJoe Perches 	vaf.fmt = fmt;
143e7f2c51SJoe Perches 	vaf.va = &args;
153e7f2c51SJoe Perches 
163e7f2c51SJoe Perches 	pr_notice("UBIFS (ubi%d:%d): %pV\n",
173e7f2c51SJoe Perches 		  c->vi.ubi_num, c->vi.vol_id, &vaf);
183e7f2c51SJoe Perches 
193e7f2c51SJoe Perches 	va_end(args);
203e7f2c51SJoe Perches }								    \
213e7f2c51SJoe Perches 
223e7f2c51SJoe Perches /* UBIFS error messages */
ubifs_err(const struct ubifs_info * c,const char * fmt,...)233e7f2c51SJoe Perches void ubifs_err(const struct ubifs_info *c, const char *fmt, ...)
243e7f2c51SJoe Perches {
253e7f2c51SJoe Perches 	struct va_format vaf;
263e7f2c51SJoe Perches 	va_list args;
273e7f2c51SJoe Perches 
283e7f2c51SJoe Perches 	va_start(args, fmt);
293e7f2c51SJoe Perches 
303e7f2c51SJoe Perches 	vaf.fmt = fmt;
313e7f2c51SJoe Perches 	vaf.va = &args;
323e7f2c51SJoe Perches 
333e7f2c51SJoe Perches 	pr_err("UBIFS error (ubi%d:%d pid %d): %ps: %pV\n",
343e7f2c51SJoe Perches 	       c->vi.ubi_num, c->vi.vol_id, current->pid,
353e7f2c51SJoe Perches 	       __builtin_return_address(0),
363e7f2c51SJoe Perches 	       &vaf);
373e7f2c51SJoe Perches 
383e7f2c51SJoe Perches 	va_end(args);
393e7f2c51SJoe Perches }								    \
403e7f2c51SJoe Perches 
413e7f2c51SJoe Perches /* UBIFS warning messages */
ubifs_warn(const struct ubifs_info * c,const char * fmt,...)423e7f2c51SJoe Perches void ubifs_warn(const struct ubifs_info *c, const char *fmt, ...)
433e7f2c51SJoe Perches {
443e7f2c51SJoe Perches 	struct va_format vaf;
453e7f2c51SJoe Perches 	va_list args;
463e7f2c51SJoe Perches 
473e7f2c51SJoe Perches 	va_start(args, fmt);
483e7f2c51SJoe Perches 
493e7f2c51SJoe Perches 	vaf.fmt = fmt;
503e7f2c51SJoe Perches 	vaf.va = &args;
513e7f2c51SJoe Perches 
523e7f2c51SJoe Perches 	pr_warn("UBIFS warning (ubi%d:%d pid %d): %ps: %pV\n",
533e7f2c51SJoe Perches 		c->vi.ubi_num, c->vi.vol_id, current->pid,
543e7f2c51SJoe Perches 		__builtin_return_address(0),
553e7f2c51SJoe Perches 		&vaf);
563e7f2c51SJoe Perches 
573e7f2c51SJoe Perches 	va_end(args);
583e7f2c51SJoe Perches }
59c38c5a7fSRichard Weinberger 
60c38c5a7fSRichard Weinberger static char *assert_names[] = {
61c38c5a7fSRichard Weinberger 	[ASSACT_REPORT] = "report",
62c38c5a7fSRichard Weinberger 	[ASSACT_RO] = "read-only",
63c38c5a7fSRichard Weinberger 	[ASSACT_PANIC] = "panic",
64c38c5a7fSRichard Weinberger };
65c38c5a7fSRichard Weinberger 
ubifs_assert_action_name(struct ubifs_info * c)66c38c5a7fSRichard Weinberger const char *ubifs_assert_action_name(struct ubifs_info *c)
67c38c5a7fSRichard Weinberger {
68c38c5a7fSRichard Weinberger 	return assert_names[c->assert_action];
69c38c5a7fSRichard Weinberger }
70