|
@@ -2851,6 +2851,28 @@ void kmsg_dump_rewind(struct kmsg_dumper *dumper)
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(kmsg_dump_rewind);
|
|
|
|
|
|
+static char dump_stack_arch_desc_str[128];
|
|
|
+
|
|
|
+/**
|
|
|
+ * dump_stack_set_arch_desc - set arch-specific str to show with task dumps
|
|
|
+ * @fmt: printf-style format string
|
|
|
+ * @...: arguments for the format string
|
|
|
+ *
|
|
|
+ * The configured string will be printed right after utsname during task
|
|
|
+ * dumps. Usually used to add arch-specific system identifiers. If an
|
|
|
+ * arch wants to make use of such an ID string, it should initialize this
|
|
|
+ * as soon as possible during boot.
|
|
|
+ */
|
|
|
+void __init dump_stack_set_arch_desc(const char *fmt, ...)
|
|
|
+{
|
|
|
+ va_list args;
|
|
|
+
|
|
|
+ va_start(args, fmt);
|
|
|
+ vsnprintf(dump_stack_arch_desc_str, sizeof(dump_stack_arch_desc_str),
|
|
|
+ fmt, args);
|
|
|
+ va_end(args);
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* dump_stack_print_info - print generic debug info for dump_stack()
|
|
|
* @log_lvl: log level
|
|
@@ -2865,6 +2887,10 @@ void dump_stack_print_info(const char *log_lvl)
|
|
|
print_tainted(), init_utsname()->release,
|
|
|
(int)strcspn(init_utsname()->version, " "),
|
|
|
init_utsname()->version);
|
|
|
+
|
|
|
+ if (dump_stack_arch_desc_str[0] != '\0')
|
|
|
+ printk("%sHardware name: %s\n",
|
|
|
+ log_lvl, dump_stack_arch_desc_str);
|
|
|
}
|
|
|
|
|
|
#endif
|