Commit b594deb0cc54d857828d2e33b2e9d5a9f02f0e89

Authored by Ingo Molnar

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
... ... @@ -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();