[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: 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>

authored by Corey Minyard and committed by Linus Torvalds 46d52b09 f3ce6a0e

+5 -1
+3 -1
drivers/char/ipmi/ipmi_msghandler.c
··· 3242 3242 report the error immediately. */ 3243 3243 if ((msg->rsp_size >= 3) && (msg->rsp[2] != 0) 3244 3244 && (msg->rsp[2] != IPMI_NODE_BUSY_ERR) 3245 - && (msg->rsp[2] != IPMI_LOST_ARBITRATION_ERR)) 3245 + && (msg->rsp[2] != IPMI_LOST_ARBITRATION_ERR) 3246 + && (msg->rsp[2] != IPMI_BUS_ERR) 3247 + && (msg->rsp[2] != IPMI_NAK_ON_WRITE_ERR)) 3246 3248 { 3247 3249 int chan = msg->rsp[3] & 0xf; 3248 3250
+2
include/linux/ipmi_msgdefs.h
··· 75 75 #define IPMI_INVALID_COMMAND_ERR 0xc1 76 76 #define IPMI_ERR_MSG_TRUNCATED 0xc6 77 77 #define IPMI_LOST_ARBITRATION_ERR 0x81 78 + #define IPMI_BUS_ERR 0x82 79 + #define IPMI_NAK_ON_WRITE_ERR 0x83 78 80 #define IPMI_ERR_UNSPECIFIED 0xff 79 81 80 82 #define IPMI_CHANNEL_PROTOCOL_IPMB 1