[SRU][J:linux-bluefield][PATCH v1 1/1] UBUNTU: SAUCE: ipmb_host: IPMI panic event causes hang
Chris Babroski
cbabroski at nvidia.com
Tue May 13 12:36:45 UTC 2025
BugLink: https://bugs.launchpad.net/bugs/2110498
When the kernel configs CONFIG_IPMI_PANIC_EVENT or CONFIG_IPMI_PANIC_STRING
are enabled the ipmi_msghandler driver will attempt to send the kernel
panic event to the BMC to record in the SEL. It was found that this
causes a hang on BlueField which can block kdump from running and
rebooting the system after a kernel panic occurs.
The ipmi_msghandler driver requires the ipmi_smi_handlers "poll"
and "set_run_to_completion" callbacks to be implemented in order to
send the panic event. If those functions are not registered then panic
eventing will be skipped.
In the ipmb_host driver these callbacks are registered, but
are not implemented to do anything. When the IPMI panic handler runs it
attempts to send the panic request and waits for the operation to be
completed by polling. Because the poll handler is not fully
implemented, this causes an infinite loop.
The fix is to remove unimplemented ipmi_smi handlers because IPMI panic
eventing is not currently supported on BlueField.
Signed-off-by: Chris Babroski <cbabroski at nvidia.com>
Reviewed-by: Asmaa Mnebhi <asmaa at nvidia.com>
---
drivers/char/ipmi/ipmb_host.c | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/drivers/char/ipmi/ipmb_host.c b/drivers/char/ipmi/ipmb_host.c
index f178a7df0389..b74d81e0c499 100644
--- a/drivers/char/ipmi/ipmb_host.c
+++ b/drivers/char/ipmi/ipmb_host.c
@@ -582,22 +582,11 @@ static void ipmb_request_events(void *data)
{
}
-static void ipmb_set_run_to_completion(void *data,
- bool run_to_completion)
-{
-}
-
-static void ipmb_poll(void *data)
-{
-}
-
static struct ipmi_smi_handlers ipmb_smi_handlers = {
.owner = THIS_MODULE,
.start_processing = ipmb_start_processing,
.sender = ipmb_sender,
.request_events = ipmb_request_events,
- .set_run_to_completion = ipmb_set_run_to_completion,
- .poll = ipmb_poll,
};
static bool is_ipmb_response(u8 netfn_rq_lun, size_t msg_len)
--
2.43.0
More information about the kernel-team
mailing list