Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 46d52b09 authored by Corey Minyard's avatar Corey Minyard Committed by Linus Torvalds
Browse files

[PATCH] IPMI: retry messages on certain error returns



Some more errors from the IPMI send message command are retryable, but are not
being retried by the IPMI code.  Make sure they get retried.

Signed-off-by: default avatarCorey Minyard <minyard@acm.org>
Cc: Frederic Lelievre <Frederic.Lelievre@ca.kontron.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent f3ce6a0e
Loading
Loading
Loading
Loading
+3 −1
Original line number Original line Diff line number Diff line
@@ -3242,7 +3242,9 @@ void ipmi_smi_msg_received(ipmi_smi_t intf,
                   report the error immediately. */
                   report the error immediately. */
		if ((msg->rsp_size >= 3) && (msg->rsp[2] != 0)
		if ((msg->rsp_size >= 3) && (msg->rsp[2] != 0)
		    && (msg->rsp[2] != IPMI_NODE_BUSY_ERR)
		    && (msg->rsp[2] != IPMI_NODE_BUSY_ERR)
		    && (msg->rsp[2] != IPMI_LOST_ARBITRATION_ERR))
		    && (msg->rsp[2] != IPMI_LOST_ARBITRATION_ERR)
		    && (msg->rsp[2] != IPMI_BUS_ERR)
		    && (msg->rsp[2] != IPMI_NAK_ON_WRITE_ERR))
		{
		{
			int chan = msg->rsp[3] & 0xf;
			int chan = msg->rsp[3] & 0xf;


+2 −0
Original line number Original line Diff line number Diff line
@@ -75,6 +75,8 @@
#define IPMI_INVALID_COMMAND_ERR	0xc1
#define IPMI_INVALID_COMMAND_ERR	0xc1
#define IPMI_ERR_MSG_TRUNCATED		0xc6
#define IPMI_ERR_MSG_TRUNCATED		0xc6
#define IPMI_LOST_ARBITRATION_ERR	0x81
#define IPMI_LOST_ARBITRATION_ERR	0x81
#define IPMI_BUS_ERR			0x82
#define IPMI_NAK_ON_WRITE_ERR		0x83
#define IPMI_ERR_UNSPECIFIED		0xff
#define IPMI_ERR_UNSPECIFIED		0xff


#define IPMI_CHANNEL_PROTOCOL_IPMB	1
#define IPMI_CHANNEL_PROTOCOL_IPMB	1