^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) // SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #include <linux/kernel.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #include "ubifs.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) /* Normal UBIFS messages */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) void ubifs_msg(const struct ubifs_info *c, const char *fmt, ...)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) struct va_format vaf;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) va_list args;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) va_start(args, fmt);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) vaf.fmt = fmt;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) vaf.va = &args;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) pr_notice("UBIFS (ubi%d:%d): %pV\n",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) c->vi.ubi_num, c->vi.vol_id, &vaf);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) va_end(args);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) } \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) /* UBIFS error messages */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) void ubifs_err(const struct ubifs_info *c, const char *fmt, ...)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) struct va_format vaf;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) va_list args;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) va_start(args, fmt);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) vaf.fmt = fmt;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) vaf.va = &args;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) pr_err("UBIFS error (ubi%d:%d pid %d): %ps: %pV\n",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) c->vi.ubi_num, c->vi.vol_id, current->pid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) __builtin_return_address(0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) &vaf);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) va_end(args);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) } \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) /* UBIFS warning messages */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) void ubifs_warn(const struct ubifs_info *c, const char *fmt, ...)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) struct va_format vaf;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) va_list args;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) va_start(args, fmt);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) vaf.fmt = fmt;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) vaf.va = &args;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) pr_warn("UBIFS warning (ubi%d:%d pid %d): %ps: %pV\n",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) c->vi.ubi_num, c->vi.vol_id, current->pid,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) __builtin_return_address(0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) &vaf);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) va_end(args);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) static char *assert_names[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) [ASSACT_REPORT] = "report",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) [ASSACT_RO] = "read-only",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) [ASSACT_PANIC] = "panic",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) const char *ubifs_assert_action_name(struct ubifs_info *c)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) return assert_names[c->assert_action];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) }