]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ipmi:si: Handle waiting messages when BMC failure detected
authorCorey Minyard <corey@minyard.net>
Fri, 6 Feb 2026 15:59:32 +0000 (09:59 -0600)
committerCorey Minyard <corey@minyard.net>
Fri, 6 Feb 2026 16:50:59 +0000 (10:50 -0600)
If a BMC failure is detected, the current message is returned with an
error.  However, if there was a waiting message, it would not be
handled.

Add a check for the waiting message after handling the current message.

Suggested-by: Guenter Roeck <linux@roeck-us.net>
Reported-by: Rafael J. Wysocki <rafael@kernel.org>
Closes: https://lore.kernel.org/linux-acpi/CAK8fFZ58fidGUCHi5WFX0uoTPzveUUDzT=k=AAm4yWo3bAuCFg@mail.gmail.com/
Fixes: bc3a9d217755 ("ipmi:si: Gracefully handle if the BMC is non-functional")
Cc: stable@vger.kernel.org # 4.18
Signed-off-by: Corey Minyard <corey@minyard.net>
drivers/char/ipmi/ipmi_si_intf.c

index 5459ffdde8dc6e34af1333919c14bf6a2808e589..ff159b1162b9b286ed5482e33151084bc8cd3a9c 100644 (file)
@@ -809,6 +809,12 @@ restart:
                         */
                        return_hosed_msg(smi_info, IPMI_BUS_ERR);
                }
+               if (smi_info->waiting_msg != NULL) {
+                       /* Also handle if there was a message waiting. */
+                       smi_info->curr_msg = smi_info->waiting_msg;
+                       smi_info->waiting_msg = NULL;
+                       return_hosed_msg(smi_info, IPMI_BUS_ERR);
+               }
                smi_mod_timer(smi_info, jiffies + SI_TIMEOUT_HOSED);
                goto out;
        }