Commit b594deb0cc54d857828d2e33b2e9d5a9f02f0e89
Exists in
master
and in
4 other branches
Merge branch 'core/debug' into core/core
Showing 2 changed files Side-by-side Diff
include/asm-generic/bug.h
... | ... | @@ -33,15 +33,14 @@ |
33 | 33 | |
34 | 34 | #ifndef __WARN |
35 | 35 | #ifndef __ASSEMBLY__ |
36 | -extern void warn_on_slowpath(const char *file, const int line); | |
37 | 36 | extern void warn_slowpath(const char *file, const int line, |
38 | 37 | const char *fmt, ...) __attribute__((format(printf, 3, 4))); |
39 | 38 | #define WANT_WARN_ON_SLOWPATH |
40 | 39 | #endif |
41 | -#define __WARN() warn_on_slowpath(__FILE__, __LINE__) | |
42 | -#define __WARN_printf(arg...) warn_slowpath(__FILE__, __LINE__, arg) | |
40 | +#define __WARN() warn_slowpath(__FILE__, __LINE__, NULL) | |
41 | +#define __WARN_printf(arg...) warn_slowpath(__FILE__, __LINE__, arg) | |
43 | 42 | #else |
44 | -#define __WARN_printf(arg...) do { printk(arg); __WARN(); } while (0) | |
43 | +#define __WARN_printf(arg...) do { printk(arg); __WARN(); } while (0) | |
45 | 44 | #endif |
46 | 45 | |
47 | 46 | #ifndef WARN_ON |
kernel/panic.c
... | ... | @@ -21,6 +21,7 @@ |
21 | 21 | #include <linux/debug_locks.h> |
22 | 22 | #include <linux/random.h> |
23 | 23 | #include <linux/kallsyms.h> |
24 | +#include <linux/dmi.h> | |
24 | 25 | |
25 | 26 | int panic_on_oops; |
26 | 27 | static unsigned long tainted_mask; |
27 | 28 | |
28 | 29 | |
... | ... | @@ -321,36 +322,27 @@ |
321 | 322 | } |
322 | 323 | |
323 | 324 | #ifdef WANT_WARN_ON_SLOWPATH |
324 | -void warn_on_slowpath(const char *file, int line) | |
325 | -{ | |
326 | - char function[KSYM_SYMBOL_LEN]; | |
327 | - unsigned long caller = (unsigned long) __builtin_return_address(0); | |
328 | - sprint_symbol(function, caller); | |
329 | - | |
330 | - printk(KERN_WARNING "------------[ cut here ]------------\n"); | |
331 | - printk(KERN_WARNING "WARNING: at %s:%d %s()\n", file, | |
332 | - line, function); | |
333 | - print_modules(); | |
334 | - dump_stack(); | |
335 | - print_oops_end_marker(); | |
336 | - add_taint(TAINT_WARN); | |
337 | -} | |
338 | -EXPORT_SYMBOL(warn_on_slowpath); | |
339 | - | |
340 | - | |
341 | 325 | void warn_slowpath(const char *file, int line, const char *fmt, ...) |
342 | 326 | { |
343 | 327 | va_list args; |
344 | 328 | char function[KSYM_SYMBOL_LEN]; |
345 | 329 | unsigned long caller = (unsigned long)__builtin_return_address(0); |
330 | + const char *board; | |
331 | + | |
346 | 332 | sprint_symbol(function, caller); |
347 | 333 | |
348 | 334 | printk(KERN_WARNING "------------[ cut here ]------------\n"); |
349 | 335 | printk(KERN_WARNING "WARNING: at %s:%d %s()\n", file, |
350 | 336 | line, function); |
351 | - va_start(args, fmt); | |
352 | - vprintk(fmt, args); | |
353 | - va_end(args); | |
337 | + board = dmi_get_system_info(DMI_PRODUCT_NAME); | |
338 | + if (board) | |
339 | + printk(KERN_WARNING "Hardware name: %s\n", board); | |
340 | + | |
341 | + if (fmt) { | |
342 | + va_start(args, fmt); | |
343 | + vprintk(fmt, args); | |
344 | + va_end(args); | |
345 | + } | |
354 | 346 | |
355 | 347 | print_modules(); |
356 | 348 | dump_stack(); |