Commit 52c9ee20 authored by Corey Minyard's avatar Corey Minyard
Browse files

ipmi:si: Handle waiting messages when BMC failure detected



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: default avatarGuenter Roeck <linux@roeck-us.net>
Reported-by: default avatarRafael J. Wysocki <rafael@kernel.org>
Closes: https://lore.kernel.org/linux-acpi/CAK8fFZ58fidGUCHi5WFX0uoTPzveUUDzT=k=AAm4yWo3bAuCFg@mail.gmail.com/


Fixes: bc3a9d21 ("ipmi:si: Gracefully handle if the BMC is non-functional")
Cc: stable@vger.kernel.org # 4.18
Signed-off-by: default avatarCorey Minyard <corey@minyard.net>
parent 6b157b40
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -809,6 +809,12 @@ static enum si_sm_result smi_event_handler(struct smi_info *smi_info,
			 */
			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;
	}