It helps to actually attach the patch....

Corey Minyard wrote:
> Lelievre, Frederic wrote:
>   
>> Hi Corey,
>>
>> The previous version of the driver was retrying on the SendMessage failures, 
>> no matter the return code received. Now it filters some of the error code 
>> such as the lost of arbitration and perform retries on those. The problem is 
>> that when the failure is not in the if statement, the code is returned right 
>> away without retry (0x82 and 0x83 should pass after retry). Moreover, this 
>> is impossible for the application to know that this failure comes from the 
>> SendMessage and not from the encapsulated command (the netfn is not changed 
>> from the application point of view). The error code is then misinterpreted 
>> by the application, if the netfn of the command originally sent as an 
>> associated 0x82 or 0x83 error code.
>>   
>>     
> Ah, sorry for being so thick, I see now.
>
> I don't have the I2C spec, so I don't really know what those codes
> mean.  They looked pretty severe to me, so I treated them as hard
> errors.  I've added the attached patch to go upstream.  I'm copying the
> list so others that know can comment on this.
>
> -Corey
>
>
>   

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

Signed-off-by: Corey Minyard <[EMAIL PROTECTED]>

Index: linux-2.6.18/drivers/char/ipmi/ipmi_msghandler.c
===================================================================
--- linux-2.6.18.orig/drivers/char/ipmi/ipmi_msghandler.c
+++ linux-2.6.18/drivers/char/ipmi/ipmi_msghandler.c
@@ -3468,7 +3468,9 @@ void ipmi_smi_msg_received(ipmi_smi_t   
                    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: linux-2.6.18/include/linux/ipmi_msgdefs.h
===================================================================
--- linux-2.6.18.orig/include/linux/ipmi_msgdefs.h
+++ linux-2.6.18/include/linux/ipmi_msgdefs.h
@@ -84,6 +84,8 @@
 #define IPMI_TIMEOUT_ERR		0xc3
 #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
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Openipmi-developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openipmi-developer

Reply via email to