Corey, I've seen this also, mostly on Red Hat kernels around the 2.6.32 vintage. It would be nice to leverage the fix you mention below. Can you point to it?
Andy -----Original Message----- From: Corey Minyard [mailto:[email protected]] Sent: Friday, April 06, 2012 4:53 PM To: dbashaw Cc: OpenIPMI Subject: Re: [Openipmi-developer] Multiple users sending messages via KCS interface You don't mention the kernel version or anything of that nature. There was a bug fixed a while back for something that looked like this. -corey On 04/05/2012 09:15 PM, dbashaw wrote: > I have two IPMI users created using ipmi_create_user(..). > Each user can send messages async with respect to each other. > I have also seen IPMI message handler: BMC returned incorrect response > errors some times. > > When I allow only one user to use the KCS interface this does not seem > to happen. > After reviewing ipmi_msghandler.c I am not able to figure out how a > response to a message > from a given user can be identified with that user and not some other. > > ipmi_msghandler() sends the message to the interface handler (KCS > state machine in this case) and is done, > free to handle the next user request since responses arrive > asynchronously at a later time. > > From the IPMI spec I see KCS message request format described as: > BYTE 1 BYTE 2 BYTE 3:N > NetFn/Lun Cmd Data > > KCS message response format: > BYTE 1 BYTE 2 BYTE 3 BYTE 4:N > NetFn/Lun Cmd Ccode Data > > Data is that which is required by the specific command being sent only. > > Request and response messages both have no user identifiable information > that I can find in the V1.5 or V2.0 spec. > > I'm beginning to think that this is the reason for the "incorrect > response" error above when two users are > sending requests. > > handle_new_recv_msg((ipmi_smi_t intf, > struct ipmi_smi_msg *msg) > } else if (((msg->rsp[0]>> 2) != ((msg->data[0]>> 2) | 1)) > || (msg->rsp[1] != msg->data[1])) { > /* > * The NetFN and Command in the response is not even > * marginally correct. > */ > printk(KERN_WARNING PFX "BMC returned incorrect response," > " expected netfn %x cmd %x, got netfn %x cmd %x\n", > (msg->data[0]>> 2) | 1, msg->data[1], > msg->rsp[0]>> 2, msg->rsp[1]); > > No information in msg->rsp or msg->data can be used to make sure this > response is associated with > the correct user. Higher level things like sequence numbers are > contained in the msg struct at some level > but don't address the issue of associating the response to a unique user. > > How to fix this? > > Dave > > > > > > ------------------------------------------------------------------------ ------ > For Developers, A Lot Can Happen In A Second. > Boundary is the first to Know...and Tell You. > Monitor Your Applications in Ultra-Fine Resolution. Try it FREE! > http://p.sf.net/sfu/Boundary-d2dvs2 > _______________________________________________ > Openipmi-developer mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/openipmi-developer ------------------------------------------------------------------------ ------ For Developers, A Lot Can Happen In A Second. Boundary is the first to Know...and Tell You. Monitor Your Applications in Ultra-Fine Resolution. Try it FREE! http://p.sf.net/sfu/Boundary-d2dvs2 _______________________________________________ Openipmi-developer mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openipmi-developer ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Openipmi-developer mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openipmi-developer
