Hi Matt,
I don't see it that way. I could see someone programming a single
thread
and only wanting to poll the SMS_ATN bit, and process events as
they occur. Not doing any other KCS. e.g.
main()
{
setup_kcs();
while (1) {
kcs_wait_for_sms()
get_message_flags()
process_event()
}
}
Maybe I didn't describe it well. The concern I have with your patch (if
I'm reading it correctly, correct me if I'm wrong) is that the only time
the SMS ATN bit is checked is in _ipmi_kcs_get_status().
_ipmi_kcs_get_status() will only be called through other KCS functions
like ipmi_kcs_read() and ipmi_kcs_write().
So in order for the SMS ATN bit to be checked, ipmi_kcs_read() and
ipmi_kcs_write() have to be called, either by your application or other
IPMI going on in the system, otherwise the SMS_ATN bit will never be
checked. Correct? Under your
patch, in the above code snippet,
kcs_wait_for_sms() will never return, b/c no other KCS calls are going
on (unless they are other KCS IPMI going on in the system elsewhere).
Perhaps within your patch, you assumed other IPMI going on in other
parts of the system?
Al
--
Albert Chu
address@hiddenComputer Scientist
High Performance Systems Division
Lawrence Livermore National Laboratory