History

debug warnings: print the DMI board info name in a WARN/WARN_ON

Impact: extend WARN_ON() output with DMI_PRODUCT_NAME It's very useful for many low level WARN_ON's to find out which motherboard has the broken BIOS etc... this patch adds a printk to the WARN_ON code for this. On architectures without DMI, gcc should optimize the code out.

Arjan van de Ven committed 17 years ago

Commit bd89bb21 parent 74853db1 file · +6 −0Browse files

Showing the changes to kernel/panic.c (1 of 1 file). Show all

Unified · Split

kernel/panic.c+6−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
21#include <linux/debug_locks.h>21#include <linux/debug_locks.h>
22#include <linux/random.h>22#include <linux/random.h>
23#include <linux/kallsyms.h>23#include <linux/kallsyms.h>
24#include <linux/dmi.h>
24 25
25int panic_on_oops;26int panic_on_oops;
26static unsigned long tainted_mask;27static unsigned long tainted_mask;
@@ -325,11 +326,16 @@ void warn_slowpath(const char *file, int line, const char *fmt, ...) · 298 unmodified lines
325 va_list args;326 va_list args;
326 char function[KSYM_SYMBOL_LEN];327 char function[KSYM_SYMBOL_LEN];
327 unsigned long caller = (unsigned long)__builtin_return_address(0);328 unsigned long caller = (unsigned long)__builtin_return_address(0);
329 const char *board;
330
328 sprint_symbol(function, caller);331 sprint_symbol(function, caller);
329 332
330 printk(KERN_WARNING "------------[ cut here ]------------\n");333 printk(KERN_WARNING "------------[ cut here ]------------\n");
331 printk(KERN_WARNING "WARNING: at %s:%d %s()\n", file,334 printk(KERN_WARNING "WARNING: at %s:%d %s()\n", file,
332 line, function);335 line, function);
336 board = dmi_get_system_info(DMI_PRODUCT_NAME);
337 if (board)
338 printk(KERN_WARNING "Hardware name: %s\n", board);
333 339
334 if (fmt) {340 if (fmt) {
335 va_start(args, fmt);341 va_start(args, fmt);

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t