PATCH: rasdaemon: Don't run ipmitool if use_ipmitool is false (#241)
Sergio Gelato <[email protected]> Thu, 23 Jul 2026 09:41:58 +0200
| Newsgroups | org.kernel.vger.linux-edac |
|---|---|
| Message-ID | <[email protected]> |
The patch below addresses an issue observed on some systems, where rasdaemon (and sh) would log a failure to invoke ipmitool. The issue has been reported before (https://github.com/mchehab/rasdaemon/issues/241) by someone else but is still not fixed in release 0.8.5.
0001-Don-t-run-ipmitool-if-use_ipmitool-is-false.patch
(text/x-diff, 1.9 KB)
From: Sergio Gelato <[email protected]> Date: Wed, 22 Jul 2026 11:17:12 +0200 Subject: Don't run ipmitool if use_ipmitool is false It's inappropriate to try and invoke ipmitool when use_ipmitool is false. This has been observed to cause spurious warnings on systems where ipmitool is not installed, and may have worse effects where it is. Signed-off-by: Sergio Gelato <[email protected]> diff --git a/ras-aer-handler.c b/ras-aer-handler.c index 5d069f3..85d3df7 100644 --- a/ras-aer-handler.c +++ b/ras-aer-handler.c @@ -187,21 +187,23 @@ int ras_aer_event_handler(struct trace_seq *s, * number, byte 16[7:3] is device number, byte 16[2:0] is * function number */ - rc = sscanf(ev.dev_name, "%x:%x:%x.%x", &seg, &bus, &dev, &fn); - if (rc == 4) { - sel_data[1] = seg & 0xff; - sel_data[2] = (seg & 0xff00) >> 8; - sel_data[3] = bus; - sel_data[4] = (((dev & 0x1f) << 3) | (fn & 0x7)); - - snprintf(ipmi_add_sel, sizeof(ipmi_add_sel), - "ipmitool raw 0x0a 0x44 0x00 0x00 0xc0 0x00 0x00 0x00 0x00 0x3a 0xcd 0x00 0xc0 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x", - sel_data[0], sel_data[1], sel_data[2], sel_data[3], sel_data[4]); - - rc = system(ipmi_add_sel); + if (use_ipmitool) { + rc = sscanf(ev.dev_name, "%x:%x:%x.%x", &seg, &bus, &dev, &fn); + if (rc == 4) { + sel_data[1] = seg & 0xff; + sel_data[2] = (seg & 0xff00) >> 8; + sel_data[3] = bus; + sel_data[4] = (((dev & 0x1f) << 3) | (fn & 0x7)); + + snprintf(ipmi_add_sel, sizeof(ipmi_add_sel), + "ipmitool raw 0x0a 0x44 0x00 0x00 0xc0 0x00 0x00 0x00 0x00 0x3a 0xcd 0x00 0xc0 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x", + sel_data[0], sel_data[1], sel_data[2], sel_data[3], sel_data[4]); + + rc = system(ipmi_add_sel); + } + if (rc) + log(SYSLOG, LOG_WARNING, "Failed to execute ipmitool\n"); } - if (rc) - log(SYSLOG, LOG_WARNING, "Failed to execute ipmitool\n"); #endif #ifdef HAVE_OPENBMC_UNIFIED_SEL