The error message 'NMI watchdog failed to create perf event...' does not make it clear that this is a fatal error for the watchdog. It also currently prints the error value as a pointer, rather than extracting the error code with PTR_ERR(). Fix that. Add a note to the description of the 'nowatchdog' kernel parameter to associate it with this message.
Unified · Split
| @@ -1759,7 +1759,7 @@ and is between 256 and 4096 characters. It is defined in the file · 1758 unmodified lines | |||
| 1759 | 1759 | ||
| 1760 | nousb [USB] Disable the USB subsystem | 1760 | nousb [USB] Disable the USB subsystem |
| 1761 | 1761 | ||
| 1762 | nowatchdog [KNL] Disable the lockup detector. | 1762 | nowatchdog [KNL] Disable the lockup detector (NMI watchdog). |
| 1763 | 1763 | ||
| 1764 | nowb [ARM] | 1764 | nowb [ARM] |
| 1765 | 1765 | ||
| @@ -364,7 +364,8 @@ static int watchdog_nmi_enable(int cpu) · 363 unmodified lines | |||
| 364 | goto out_save; | 364 | goto out_save; |
| 365 | } | 365 | } |
| 366 | 366 | ||
| 367 | printk(KERN_ERR "NMI watchdog failed to create perf event on cpu%i: %p\n", cpu, event); | 367 | printk(KERN_ERR "NMI watchdog disabled for cpu%i: unable to create perf event: %ld\n", |
| 368 | cpu, PTR_ERR(event)); | ||
| 368 | return PTR_ERR(event); | 369 | return PTR_ERR(event); |
| 369 | 370 | ||
| 370 | /* success path */ | 371 | /* success path */ |