Sorry, I missed this. What version of Linux? I believe this has been fixed a while ago, but you may not have the fix.
-corey On 03/01/2013 05:08 PM, David Bashaw wrote: > I sent this some time ago. Is anyone still actively working IPMI bugs? > I would like to make some progress on this issue. We see this on lots of > machines here. > > Regards. > > Dave > > > -----Original Message----- > From: David Bashaw > Sent: Tuesday, January 22, 2013 3:04 PM > To: [email protected] > Subject: BMC returned incorrect response, expected > > Hello. Still chasing this bug. > > I posted some time ago some debugs and was asked to clean them up and try > again. > > So, I re-coded my debug. > The messages are below and the code change follows. > > ====================== > ( 1 ) handle_transaction_done: smi cmd:0x2c does not match the smi > cmd:0x06 in response ( 2 ) handle_transaction_done: smi netfn:0x07 does not > match user data cmd:0x2d IPMI message handler: BMC returned incorrect > response, expected netfn 2d cmd 0, got netfn 7 cmd 35 msgid:0 > handle_transaction_done: smi cmd:0x06 does not match the smi cmd:0x2c in > response > handle_transaction_done: smi netfn:0x2d does not match user data cmd:0x07 > IPMI message handler: BMC returned incorrect response, expected netfn 7 cmd > 1, got netfn 2d cmd 0 msgid:1 ====================== > > It appears the command and response in SMI message do not match what is in > the user data. > I hope this is helpful. > > Dave > > static void handle_transaction_done(struct smi_info *smi_info) { > struct ipmi_smi_msg *msg; > struct ipmi_recv_msg *recv_msg; > unsigned long user; > > #ifdef DEBUG_TIMING > struct timeval t; > #endif > > switch (smi_info->si_state) { > case SI_NORMAL: > if (!smi_info->curr_msg) > break; > > smi_info->curr_msg->rsp_size > = smi_info->handlers->get_result( > smi_info->si_sm, > smi_info->curr_msg->rsp, > IPMI_MAX_MSG_LENGTH, &user); > > recv_msg = (struct ipmi_recv_msg *) > smi_info->curr_msg->user_data; > if (recv_msg) { > int err = 0; > u8 msgCmd = (smi_info->curr_msg->data[0] >> 2); /* > the request */ > u8 CurMsgCmd = ((smi_info->curr_msg->rsp[0] >> 2) & > 0xFE); /* the resp */ > u8 smiCmd = smi_info->curr_msg->data[1]; > u8 RecvMsgCmd = recv_msg->msg.cmd; > u8 smiNetfn = (smi_info->curr_msg->rsp[0] >> 2); > u8 RecvMsgNetfn = (recv_msg->msg.netfn | 1); > > ( 1 ) --- /* check req and rsp match between smi > msg->data[] and smi msg->rsp[] */ > if (msgCmd != CurMsgCmd) { > printk(KERN_ERR "%s: smi cmd:0x%02x does not > match the smi cmd:0x%02x in response\n", > __FUNCTION__, msgCmd, CurMsgCmd); > ++err; > } > > ( 2 ) ---- /* compare smi cmd and userdata cmd */ > if (smiCmd != RecvMsgCmd) { > printk(KERN_ERR "%s: smi cmd:0x%02x does not > match user data cmd:0x%02x\n", > __FUNCTION__, smiCmd, RecvMsgCmd); > ++err; > } > > /* compare smi request netfn matches user data netfn > */ > if (smiNetfn != RecvMsgNetfn) { > printk(KERN_ERR "%s: smi netfn:0x%02x does > not match user data cmd:0x%02x\n", > __FUNCTION__, smiNetfn, > RecvMsgNetfn); > ++err; > } > if (err) { > smi_inc_stat(smi_info, > bmc_incorrect_responses); > } > } > > > ------------------------------------------------------------------------------ > Everyone hates slow websites. So do we. > Make your web apps faster with AppDynamics > Download AppDynamics Lite for free today: > http://p.sf.net/sfu/appdyn_d2d_feb > _______________________________________________ > Openipmi-developer mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/openipmi-developer ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_feb _______________________________________________ Openipmi-developer mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openipmi-developer
