[PATCH] IPMI: retry messages on certain error returns
authorCorey Minyard <minyard@acm.org>
Thu, 9 Nov 2006 01:44:55 +0000 (17:44 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Thu, 9 Nov 2006 02:29:24 +0000 (18:29 -0800)
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: Corey Minyard <minyard@acm.org>
Cc: Frederic Lelievre <Frederic.Lelievre@ca.kontron.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/char/ipmi/ipmi_msghandler.c
include/linux/ipmi_msgdefs.h

index e55a0d276729f835026a1d0eb8d1056efb7d4918..0b07ca1b71fa8450adab289e849b41e33c4bfba0 100644 (file)
@@ -3242,7 +3242,9 @@ void ipmi_smi_msg_received(ipmi_smi_t          intf,
                    report the error immediately. */
                if ((msg->rsp_size >= 3) && (msg->rsp[2] != 0)
                    && (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;
 
index 22f5e2afda4f2f4d16b9b0f834e7eb107f44246c..4d04d8b58a0a55a13a59ef9055cdd5eac81e4d08 100644 (file)
@@ -75,6 +75,8 @@
 #define IPMI_INVALID_COMMAND_ERR       0xc1
 #define IPMI_ERR_MSG_TRUNCATED         0xc6
 #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_CHANNEL_PROTOCOL_IPMB     1