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

Reply via email to