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