<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.linux.kernel.openipmi">
    <title>gmane.linux.kernel.openipmi</title>
    <link>http://blog.gmane.org/gmane.linux.kernel.openipmi</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.kernel.openipmi/1970"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.kernel.openipmi/1966"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.kernel.openipmi/1954"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.kernel.openipmi/1941"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.kernel.openipmi/1936"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.kernel.openipmi/1931"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.kernel.openipmi/1929"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.kernel.openipmi/1911"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.kernel.openipmi/1893"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.kernel.openipmi/1891"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.kernel.openipmi/1890"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.kernel.openipmi/1886"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.kernel.openipmi/1885"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.kernel.openipmi/1882"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.kernel.openipmi/1877"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.kernel.openipmi/1867"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.kernel.openipmi/1863"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.kernel.openipmi/1862"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.kernel.openipmi/1859"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.linux.kernel.openipmi/1856"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://comments.gmane.org/gmane.linux.kernel.openipmi/1970">
    <title>Was there new release?</title>
    <link>http://comments.gmane.org/gmane.linux.kernel.openipmi/1970</link>
    <description>&lt;pre&gt;Hi,

I noticed there is OpenIPMI-2.0.19.tar.gz on OpenIPMI's sf.net page, but
I haven't seen any announcement. Is the release ready for use? Or is it
some preliminary version for testing?

Jan

------------------------------------------------------------------------------
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/
&lt;/pre&gt;</description>
    <dc:creator>Jan Safranek</dc:creator>
    <dc:date>2012-05-07T08:18:49</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.kernel.openipmi/1966">
    <title>Multiple users sending messages via KCSinterface</title>
    <link>http://comments.gmane.org/gmane.linux.kernel.openipmi/1966</link>
    <description>&lt;pre&gt;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-&amp;gt;rsp[0] &amp;gt;&amp;gt; 2) != ((msg-&amp;gt;data[0] &amp;gt;&amp;gt; 2) | 1))
                    || (msg-&amp;gt;rsp[1] != msg-&amp;gt;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-&amp;gt;data[0] &amp;gt;&amp;gt; 2) | 1, msg-&amp;gt;data[1],
                        msg-&amp;gt;rsp[0] &amp;gt;&amp;gt; 2, msg-&amp;gt;rsp[1]);

No information in msg-&amp;gt;rsp or msg-&amp;gt;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
&lt;/pre&gt;</description>
    <dc:creator>dbashaw</dc:creator>
    <dc:date>2012-04-06T02:15:45</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.kernel.openipmi/1954">
    <title>Using ipmi_lan_get_config()</title>
    <link>http://comments.gmane.org/gmane.linux.kernel.openipmi/1954</link>
    <description>&lt;pre&gt;I'm attempting to add some code that retrieves the IPMI LAN IP address. In
my small app, I ultimately get the address info, but after the call to
ipmi_lan_get_config(), I also get a list of warnings:

WARN: lanparm.c(got_parm): Error fetching dest type 18, wrong selector came
back, expecting 1, was 0.  Assuming it is 1.
WARN: lanparm.c(got_parm): Error fetching dest type 18, wrong selector came
back, expecting 2, was 0.  Assuming it is 2.
WARN: lanparm.c(got_parm): Error fetching dest type 18, wrong selector came
back, expecting 3, was 0.  Assuming it is 3.
...
WARN: lanparm.c(got_parm): Error fetching dest type 18, wrong selector came
back, expecting 15, was 0.  Assuming it is 15.
EINF: lanparm.c(got_parm): Error fetching dest addr 19, wrong selector came
back, expecting 5, was 0.  Assuming it is 5.
EINF: lanparm.c(got_parm): Error fetching dest addr 19, wrong selector came
back, expecting 6, was 0.  Assuming it is 6.
...
EINF: lanparm.c(got_parm): Error fetching dest addr 19, wrong selector came
back, expecting 14, was 0.  Assuming it is 14.
EINF: lanparm.c(got_parm): Error fetching dest addr 19, wrong selector came
back, expecting 15, was 0.  Assuming it is 15.


Following are the two lines of code proceeding the warning messages listed
above.

    ipmi_lanparm_alloc(mc, channel, &amp;amp;m_lanparm);
    ipmi_lan_get_config(m_lanparm, NGSIPMILAN::ipmi_lan_get_config_cb,
this);

Is there some other setup call I need to make prior to attempting to get
the config?

Thanks,

John G
------------------------------------------------------------------------------
Virtualization &amp;amp; Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/_______________________________________________
Openipmi-developer mailing list
Openipmi-developer&amp;lt; at &amp;gt;lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openipmi-developer
&lt;/pre&gt;</description>
    <dc:creator>John Gehring</dc:creator>
    <dc:date>2012-02-22T23:05:32</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.kernel.openipmi/1941">
    <title>[PATCH] ipmi: Increase KCS timeouts</title>
    <link>http://comments.gmane.org/gmane.linux.kernel.openipmi/1941</link>
    <description>&lt;pre&gt;We currently time out and retry KCS transactions after 1 second of waiting
for IBF or OBF. This appears to be too short for some hardware. The IPMI
spec says "All system software wait loops should include error timeouts. For
simplicity, such timeouts are not shown explicitly in the flow diagrams. A
five-second timeout or greater is recommended". Change the timeout to five
seconds to satisfy the slow hardware.

Signed-off-by: Matthew Garrett &amp;lt;mjg&amp;lt; at &amp;gt;redhat.com&amp;gt;
---
 drivers/char/ipmi/ipmi_kcs_sm.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/char/ipmi/ipmi_kcs_sm.c b/drivers/char/ipmi/ipmi_kcs_sm.c
index cf82fed..e53fc24 100644
--- a/drivers/char/ipmi/ipmi_kcs_sm.c
+++ b/drivers/char/ipmi/ipmi_kcs_sm.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -118,8 +118,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; enum kcs_states {
 #define MAX_KCS_WRITE_SIZE IPMI_MAX_MSG_LENGTH
 
 /* Timeouts in microseconds. */
-#define IBF_RETRY_TIMEOUT 1000000
-#define OBF_RETRY_TIMEOUT 1000000
+#define IBF_RETRY_TIMEOUT 5000000
+#define OBF_RETRY_TIMEOUT 5000000
 #define MAX_ERROR_RETRIES 10
 #define ERROR0_OBF_WAIT_JIFFIES (2*HZ)
 
&lt;/pre&gt;</description>
    <dc:creator>Matthew Garrett</dc:creator>
    <dc:date>2011-11-30T19:12:27</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.kernel.openipmi/1936">
    <title>error messages after exiting code: "Never freed N bytes at ..., allocated at ..."</title>
    <link>http://comments.gmane.org/gmane.linux.kernel.openipmi/1936</link>
    <description>&lt;pre&gt; Using the python bindings (with 2.0.19 of OpenIPMI and python 2.7.1), 
 got the code to work nicely, but when it finishes, i get the following 
 junk:

 $ ./openipmi-sample2.py lan -U username -P mypassword bmcipaddr
 INFO: test 0 ipmi_lan.c(connection_up): Connection 0 to the BMC is up
 INFO: test 0 ipmi_lan.c(connection_up): Connection to the BMC restored
 Conn up
 MC: test(0.20)
 got response: [0, 18, 1, 4, 34, 2, 223, 11, 0, 0, 0, 0, 3, 1, 0, 0]


 Never freed 176 bytes at 0x80e58d8, allocated at 0x4054913f 0x4054a16e 
 0x404e35a4 0x4049c301 0x4008aef6 0x400eeb5d
 Never freed 52 bytes at 0x80e59d0, allocated at 0x401ab2e6 0x404fcf55 
 0x405491b7 0x4054a16e 0x404e35a4 0x4049c301
 Never freed 8 bytes at 0x80e5a58, allocated at 0x401aaee9 0x401ab30a 
 0x404fcf55 0x405491b7 0x4054a16e 0x404e35a4
 Never freed 14640 bytes at 0x8113ef8, allocated at 0x405491cd 
 0x4054a16e 0x404e35a4 0x4049c301 0x4008aef6 0x400eeb5d
 ......

 If i pipe stderr to /dev/null it'll be clean, but i am wondering if 
 there's a better way to fix this ?


 I am looking at sample2.py with the following diff (so it actually 
 exits at some point instead of querying endlessly):

 --- OpenIPMI-2.0.19/swig/python/sample2.py     2011-10-12 
 11:03:25.000000000 -0400
 +++ OpenIPMI-2.0.19/swig/python/sample2.py  2011-10-12 
 17:23:54.615437000 -0400
 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -94,14 +65,18 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
      pass

  nexttime = time.time()
 -while main_handler.name != "done":
 +num_poll = 1
 +while main_handler.name != "done" and num_poll &amp;lt;= 2:
      OpenIPMI.wait_io(1000)
      now = time.time()
      if main_handler.mc and now &amp;gt;= nexttime:
          nexttime += 5
 +        num_poll += 1
          main_handler.mc.to_mc(main_handler)
      pass

  OpenIPMI.shutdown_everything()
  print "done"
  sys.exit(0)

 (just pasting this diff so you see i'm using known-working code)

------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2d-oct
&lt;/pre&gt;</description>
    <dc:creator>alex&lt; at &gt;nyi.net</dc:creator>
    <dc:date>2011-10-12T21:21:11</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.kernel.openipmi/1931">
    <title>Version 2.0.19 of OpenIPMI uploaded</title>
    <link>http://comments.gmane.org/gmane.linux.kernel.openipmi/1931</link>
    <description>&lt;pre&gt;It's been a long time since I uploaded a version of OpenIPMI, and there 
are some little bug fixes pending.  Most of the changes are due to 
autotools changes, though I found a couple of little bugs today playing 
with the python script I just sent out.

-corey

------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2d-oct
&lt;/pre&gt;</description>
    <dc:creator>Corey Minyard</dc:creator>
    <dc:date>2011-10-12T15:41:25</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.kernel.openipmi/1929">
    <title>openipmi appropriateness for raw requests</title>
    <link>http://comments.gmane.org/gmane.linux.kernel.openipmi/1929</link>
    <description>&lt;pre&gt; So I have some ipmitool raw commands i run remotely against a host's 
 bmc, and wanted to code them via the python bindings (so i can more 
 frequent polling and then do further processing w/o forking ipmitool 
 over and over).

 However the documentation is a bit sparse and i can't honestly see how 
 do i construct some code to do this?

 So i have to ask, is emulating raw requests something viable via 
 OpenIPMI? Is there any examples i can look at ? Even if it's just in C, 
 i figure the python bindings are pretty thinly swig'ified, but if i 
 could figure out if/how that's done, i'll tackle pythonifying it 
 afterwards.

 Thanks!
 Alex

------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2d-oct
&lt;/pre&gt;</description>
    <dc:creator>alex&lt; at &gt;nyi.net</dc:creator>
    <dc:date>2011-10-11T21:02:08</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.kernel.openipmi/1911">
    <title>OpenIPMI and RedHat 6</title>
    <link>http://comments.gmane.org/gmane.linux.kernel.openipmi/1911</link>
    <description>&lt;pre&gt;Hello *

New to IPMI world, I want to get info about fans and temperatures of my 
server.

My server is running under RHEL 6 with this kernel : 
/2.6.32-131.6.1.el6.x86_64./

I installed this OpenIPMI package : /OpenIPMI.x86_64 2.0.16-12.el6/ and 
this ipmitool package : /ipmitool.x86_64 1.8.11-7.el6/.

But when I launch this command, it fails :

/ipmitool sel list
Could not open device at /dev/ipmi0 or /dev/ipmi/0 or /dev/ipmidev/0: No 
such file or directory
Get SEL Info command failed/

It seems that the driver is not correctly binded to the device ?

Someone can help me ?

Thanks a lot !

------------------------------------------------------------------------------
Got Input?   Slashdot Needs You.
Take our quick survey online.  Come on, we don't ask for help often.
Plus, you'll get a chance to win $100 to spend on ThinkGeek.
http://p.sf.net/sfu/slashdot-survey
&lt;/pre&gt;</description>
    <dc:creator>Bob Sauvage</dc:creator>
    <dc:date>2011-07-28T16:02:26</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.kernel.openipmi/1893">
    <title>[PATCH] ipmi: convert to seq_file interface</title>
    <link>http://comments.gmane.org/gmane.linux.kernel.openipmi/1893</link>
    <description>&lt;pre&gt;-&amp;gt;read_proc interface is going away, convert to seq_file.

Signed-off-by: Alexey Dobriyan &amp;lt;adobriyan&amp;lt; at &amp;gt;gmail.com&amp;gt;
---

 drivers/char/ipmi/ipmi_msghandler.c |  138 +++++++++++++++++++++---------------
 drivers/char/ipmi/ipmi_si_intf.c    |   88 +++++++++++++++-------
 include/linux/ipmi_smi.h            |    2 
 3 files changed, 142 insertions(+), 86 deletions(-)

--- a/drivers/char/ipmi/ipmi_msghandler.c
+++ b/drivers/char/ipmi/ipmi_msghandler.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -36,6 +36,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include &amp;lt;asm/system.h&amp;gt;
 #include &amp;lt;linux/poll.h&amp;gt;
 #include &amp;lt;linux/sched.h&amp;gt;
+#include &amp;lt;linux/seq_file.h&amp;gt;
 #include &amp;lt;linux/spinlock.h&amp;gt;
 #include &amp;lt;linux/mutex.h&amp;gt;
 #include &amp;lt;linux/slab.h&amp;gt;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1896,102 +1897,128 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; int ipmi_request_supply_msgs(ipmi_user_t          user,
 EXPORT_SYMBOL(ipmi_request_supply_msgs);
 
 #ifdef CONFIG_PROC_FS
-static int ipmb_file_read_proc(char *page, char **start, off_t off,
-       int count, int *eof, void *data)
+static int smi_ipmb_proc_show(struct seq_file *m, void *v)
 {
-char       *out = (char *) page;
-ipmi_smi_t intf = data;
+ipmi_smi_t intf = m-&amp;gt;private;
 int        i;
-int        rv = 0;
 
-for (i = 0; i &amp;lt; IPMI_MAX_CHANNELS; i++)
-rv += sprintf(out+rv, "%x ", intf-&amp;gt;channels[i].address);
-out[rv-1] = '\n'; /* Replace the final space with a newline */
-out[rv] = '\0';
-rv++;
-return rv;
+seq_printf(m, "%x", intf-&amp;gt;channels[0].address);
+for (i = 1; i &amp;lt; IPMI_MAX_CHANNELS; i++)
+seq_printf(m, " %x", intf-&amp;gt;channels[i].address);
+return seq_putc(m, '\n');
 }
 
-static int version_file_read_proc(char *page, char **start, off_t off,
-  int count, int *eof, void *data)
+static int smi_ipmb_proc_open(struct inode *inode, struct file *file)
 {
-char       *out = (char *) page;
-ipmi_smi_t intf = data;
+return single_open(file, smi_ipmb_proc_show, PDE(inode)-&amp;gt;data);
+}
 
-return sprintf(out, "%u.%u\n",
+static const struct file_operations smi_ipmb_proc_ops = {
+.open= smi_ipmb_proc_open,
+.read= seq_read,
+.llseek= seq_lseek,
+.release= single_release,
+};
+
+static int smi_version_proc_show(struct seq_file *m, void *v)
+{
+ipmi_smi_t intf = m-&amp;gt;private;
+
+return seq_printf(m, "%u.%u\n",
        ipmi_version_major(&amp;amp;intf-&amp;gt;bmc-&amp;gt;id),
        ipmi_version_minor(&amp;amp;intf-&amp;gt;bmc-&amp;gt;id));
 }
 
-static int stat_file_read_proc(char *page, char **start, off_t off,
-       int count, int *eof, void *data)
+static int smi_version_proc_open(struct inode *inode, struct file *file)
 {
-char       *out = (char *) page;
-ipmi_smi_t intf = data;
+return single_open(file, smi_version_proc_show, PDE(inode)-&amp;gt;data);
+}
+
+static const struct file_operations smi_version_proc_ops = {
+.open= smi_version_proc_open,
+.read= seq_read,
+.llseek= seq_lseek,
+.release= single_release,
+};
 
-out += sprintf(out, "sent_invalid_commands:       %u\n",
+static int smi_stats_proc_show(struct seq_file *m, void *v)
+{
+ipmi_smi_t intf = m-&amp;gt;private;
+
+seq_printf(m, "sent_invalid_commands:       %u\n",
        ipmi_get_stat(intf, sent_invalid_commands));
-out += sprintf(out, "sent_local_commands:         %u\n",
+seq_printf(m, "sent_local_commands:         %u\n",
        ipmi_get_stat(intf, sent_local_commands));
-out += sprintf(out, "handled_local_responses:     %u\n",
+seq_printf(m, "handled_local_responses:     %u\n",
        ipmi_get_stat(intf, handled_local_responses));
-out += sprintf(out, "unhandled_local_responses:   %u\n",
+seq_printf(m, "unhandled_local_responses:   %u\n",
        ipmi_get_stat(intf, unhandled_local_responses));
-out += sprintf(out, "sent_ipmb_commands:          %u\n",
+seq_printf(m, "sent_ipmb_commands:          %u\n",
        ipmi_get_stat(intf, sent_ipmb_commands));
-out += sprintf(out, "sent_ipmb_command_errs:      %u\n",
+seq_printf(m, "sent_ipmb_command_errs:      %u\n",
        ipmi_get_stat(intf, sent_ipmb_command_errs));
-out += sprintf(out, "retransmitted_ipmb_commands: %u\n",
+seq_printf(m, "retransmitted_ipmb_commands: %u\n",
        ipmi_get_stat(intf, retransmitted_ipmb_commands));
-out += sprintf(out, "timed_out_ipmb_commands:     %u\n",
+seq_printf(m, "timed_out_ipmb_commands:     %u\n",
        ipmi_get_stat(intf, timed_out_ipmb_commands));
-out += sprintf(out, "timed_out_ipmb_broadcasts:   %u\n",
+seq_printf(m, "timed_out_ipmb_broadcasts:   %u\n",
        ipmi_get_stat(intf, timed_out_ipmb_broadcasts));
-out += sprintf(out, "sent_ipmb_responses:         %u\n",
+seq_printf(m, "sent_ipmb_responses:         %u\n",
        ipmi_get_stat(intf, sent_ipmb_responses));
-out += sprintf(out, "handled_ipmb_responses:      %u\n",
+seq_printf(m, "handled_ipmb_responses:      %u\n",
        ipmi_get_stat(intf, handled_ipmb_responses));
-out += sprintf(out, "invalid_ipmb_responses:      %u\n",
+seq_printf(m, "invalid_ipmb_responses:      %u\n",
        ipmi_get_stat(intf, invalid_ipmb_responses));
-out += sprintf(out, "unhandled_ipmb_responses:    %u\n",
+seq_printf(m, "unhandled_ipmb_responses:    %u\n",
        ipmi_get_stat(intf, unhandled_ipmb_responses));
-out += sprintf(out, "sent_lan_commands:           %u\n",
+seq_printf(m, "sent_lan_commands:           %u\n",
        ipmi_get_stat(intf, sent_lan_commands));
-out += sprintf(out, "sent_lan_command_errs:       %u\n",
+seq_printf(m, "sent_lan_command_errs:       %u\n",
        ipmi_get_stat(intf, sent_lan_command_errs));
-out += sprintf(out, "retransmitted_lan_commands:  %u\n",
+seq_printf(m, "retransmitted_lan_commands:  %u\n",
        ipmi_get_stat(intf, retransmitted_lan_commands));
-out += sprintf(out, "timed_out_lan_commands:      %u\n",
+seq_printf(m, "timed_out_lan_commands:      %u\n",
        ipmi_get_stat(intf, timed_out_lan_commands));
-out += sprintf(out, "sent_lan_responses:          %u\n",
+seq_printf(m, "sent_lan_responses:          %u\n",
        ipmi_get_stat(intf, sent_lan_responses));
-out += sprintf(out, "handled_lan_responses:       %u\n",
+seq_printf(m, "handled_lan_responses:       %u\n",
        ipmi_get_stat(intf, handled_lan_responses));
-out += sprintf(out, "invalid_lan_responses:       %u\n",
+seq_printf(m, "invalid_lan_responses:       %u\n",
        ipmi_get_stat(intf, invalid_lan_responses));
-out += sprintf(out, "unhandled_lan_responses:     %u\n",
+seq_printf(m, "unhandled_lan_responses:     %u\n",
        ipmi_get_stat(intf, unhandled_lan_responses));
-out += sprintf(out, "handled_commands:            %u\n",
+seq_printf(m, "handled_commands:            %u\n",
        ipmi_get_stat(intf, handled_commands));
-out += sprintf(out, "invalid_commands:            %u\n",
+seq_printf(m, "invalid_commands:            %u\n",
        ipmi_get_stat(intf, invalid_commands));
-out += sprintf(out, "unhandled_commands:          %u\n",
+seq_printf(m, "unhandled_commands:          %u\n",
        ipmi_get_stat(intf, unhandled_commands));
-out += sprintf(out, "invalid_events:              %u\n",
+seq_printf(m, "invalid_events:              %u\n",
        ipmi_get_stat(intf, invalid_events));
-out += sprintf(out, "events:                      %u\n",
+seq_printf(m, "events:                      %u\n",
        ipmi_get_stat(intf, events));
-out += sprintf(out, "failed rexmit LAN msgs:      %u\n",
+seq_printf(m, "failed rexmit LAN msgs:      %u\n",
        ipmi_get_stat(intf, dropped_rexmit_lan_commands));
-out += sprintf(out, "failed rexmit IPMB msgs:     %u\n",
+seq_printf(m, "failed rexmit IPMB msgs:     %u\n",
        ipmi_get_stat(intf, dropped_rexmit_ipmb_commands));
+return 0;
+}
 
-return (out - ((char *) page));
+static int smi_stats_proc_open(struct inode *inode, struct file *file)
+{
+return single_open(file, smi_stats_proc_show, PDE(inode)-&amp;gt;data);
 }
+
+static const struct file_operations smi_stats_proc_ops = {
+.open= smi_stats_proc_open,
+.read= seq_read,
+.llseek= seq_lseek,
+.release= single_release,
+};
 #endif /* CONFIG_PROC_FS */
 
 int ipmi_smi_add_proc_entry(ipmi_smi_t smi, char *name,
-    read_proc_t *read_proc,
+    const struct file_operations *proc_ops,
     void *data)
 {
 int                    rv = 0;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2010,15 +2037,12 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; int ipmi_smi_add_proc_entry(ipmi_smi_t smi, char *name,
 }
 strcpy(entry-&amp;gt;name, name);
 
-file = create_proc_entry(name, 0, smi-&amp;gt;proc_dir);
+file = proc_create_data(name, 0, smi-&amp;gt;proc_dir, proc_ops, data);
 if (!file) {
 kfree(entry-&amp;gt;name);
 kfree(entry);
 rv = -ENOMEM;
 } else {
-file-&amp;gt;data = data;
-file-&amp;gt;read_proc = read_proc;
-
 mutex_lock(&amp;amp;smi-&amp;gt;proc_entry_lock);
 /* Stick it on the list. */
 entry-&amp;gt;next = smi-&amp;gt;proc_entries;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2043,17 +2067,17 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int add_proc_entries(ipmi_smi_t smi, int num)
 
 if (rv == 0)
 rv = ipmi_smi_add_proc_entry(smi, "stats",
-     stat_file_read_proc,
+     &amp;amp;smi_stats_proc_ops,
      smi);
 
 if (rv == 0)
 rv = ipmi_smi_add_proc_entry(smi, "ipmb",
-     ipmb_file_read_proc,
+     &amp;amp;smi_ipmb_proc_ops,
      smi);
 
 if (rv == 0)
 rv = ipmi_smi_add_proc_entry(smi, "version",
-     version_file_read_proc,
+     &amp;amp;smi_version_proc_ops,
      smi);
 #endif /* CONFIG_PROC_FS */
 
--- a/drivers/char/ipmi/ipmi_si_intf.c
+++ b/drivers/char/ipmi/ipmi_si_intf.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -43,6 +43,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include &amp;lt;linux/moduleparam.h&amp;gt;
 #include &amp;lt;asm/system.h&amp;gt;
 #include &amp;lt;linux/sched.h&amp;gt;
+#include &amp;lt;linux/seq_file.h&amp;gt;
 #include &amp;lt;linux/timer.h&amp;gt;
 #include &amp;lt;linux/errno.h&amp;gt;
 #include &amp;lt;linux/spinlock.h&amp;gt;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2802,54 +2803,73 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int try_enable_event_buffer(struct smi_info *smi_info)
 return rv;
 }
 
-static int type_file_read_proc(char *page, char **start, off_t off,
-       int count, int *eof, void *data)
+static int smi_type_proc_show(struct seq_file *m, void *v)
 {
-struct smi_info *smi = data;
+struct smi_info *smi = m-&amp;gt;private;
 
-return sprintf(page, "%s\n", si_to_str[smi-&amp;gt;si_type]);
+return seq_printf(m, "%s\n", si_to_str[smi-&amp;gt;si_type]);
 }
 
-static int stat_file_read_proc(char *page, char **start, off_t off,
-       int count, int *eof, void *data)
+static int smi_type_proc_open(struct inode *inode, struct file *file)
 {
-char            *out = (char *) page;
-struct smi_info *smi = data;
+return single_open(file, smi_type_proc_show, PDE(inode)-&amp;gt;data);
+}
+
+static const struct file_operations smi_type_proc_ops = {
+.open= smi_type_proc_open,
+.read= seq_read,
+.llseek= seq_lseek,
+.release= single_release,
+};
+
+static int smi_si_stats_proc_show(struct seq_file *m, void *v)
+{
+struct smi_info *smi = m-&amp;gt;private;
 
-out += sprintf(out, "interrupts_enabled:    %d\n",
+seq_printf(m, "interrupts_enabled:    %d\n",
        smi-&amp;gt;irq &amp;amp;&amp;amp; !smi-&amp;gt;interrupt_disabled);
-out += sprintf(out, "short_timeouts:        %u\n",
+seq_printf(m, "short_timeouts:        %u\n",
        smi_get_stat(smi, short_timeouts));
-out += sprintf(out, "long_timeouts:         %u\n",
+seq_printf(m, "long_timeouts:         %u\n",
        smi_get_stat(smi, long_timeouts));
-out += sprintf(out, "idles:                 %u\n",
+seq_printf(m, "idles:                 %u\n",
        smi_get_stat(smi, idles));
-out += sprintf(out, "interrupts:            %u\n",
+seq_printf(m, "interrupts:            %u\n",
        smi_get_stat(smi, interrupts));
-out += sprintf(out, "attentions:            %u\n",
+seq_printf(m, "attentions:            %u\n",
        smi_get_stat(smi, attentions));
-out += sprintf(out, "flag_fetches:          %u\n",
+seq_printf(m, "flag_fetches:          %u\n",
        smi_get_stat(smi, flag_fetches));
-out += sprintf(out, "hosed_count:           %u\n",
+seq_printf(m, "hosed_count:           %u\n",
        smi_get_stat(smi, hosed_count));
-out += sprintf(out, "complete_transactions: %u\n",
+seq_printf(m, "complete_transactions: %u\n",
        smi_get_stat(smi, complete_transactions));
-out += sprintf(out, "events:                %u\n",
+seq_printf(m, "events:                %u\n",
        smi_get_stat(smi, events));
-out += sprintf(out, "watchdog_pretimeouts:  %u\n",
+seq_printf(m, "watchdog_pretimeouts:  %u\n",
        smi_get_stat(smi, watchdog_pretimeouts));
-out += sprintf(out, "incoming_messages:     %u\n",
+seq_printf(m, "incoming_messages:     %u\n",
        smi_get_stat(smi, incoming_messages));
+return 0;
+}
 
-return out - page;
+static int smi_si_stats_proc_open(struct inode *inode, struct file *file)
+{
+return single_open(file, smi_si_stats_proc_show, PDE(inode)-&amp;gt;data);
 }
 
-static int param_read_proc(char *page, char **start, off_t off,
-   int count, int *eof, void *data)
+static const struct file_operations smi_si_stats_proc_ops = {
+.open= smi_si_stats_proc_open,
+.read= seq_read,
+.llseek= seq_lseek,
+.release= single_release,
+};
+
+static int smi_params_proc_show(struct seq_file *m, void *v)
 {
-struct smi_info *smi = data;
+struct smi_info *smi = m-&amp;gt;private;
 
-return sprintf(page,
+return seq_printf(m,
        "%s,%s,0x%lx,rsp=%d,rsi=%d,rsh=%d,irq=%d,ipmb=%d\n",
        si_to_str[smi-&amp;gt;si_type],
        addr_space_to_str[smi-&amp;gt;io.addr_type],
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2861,6 +2881,18 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int param_read_proc(char *page, char **start, off_t off,
        smi-&amp;gt;slave_addr);
 }
 
+static int smi_params_proc_open(struct inode *inode, struct file *file)
+{
+return single_open(file, smi_params_proc_show, PDE(inode)-&amp;gt;data);
+}
+
+static const struct file_operations smi_params_proc_ops = {
+.open= smi_params_proc_open,
+.read= seq_read,
+.llseek= seq_lseek,
+.release= single_release,
+};
+
 /*
  * oem_data_avail_to_receive_msg_avail
  * &amp;lt; at &amp;gt;info - smi_info structure with msg_flags set
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3254,7 +3286,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int try_smi_init(struct smi_info *new_smi)
 }
 
 rv = ipmi_smi_add_proc_entry(new_smi-&amp;gt;intf, "type",
-     type_file_read_proc,
+     &amp;amp;smi_type_proc_ops,
      new_smi);
 if (rv) {
 dev_err(new_smi-&amp;gt;dev, "Unable to create proc entry: %d\n", rv);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3262,7 +3294,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int try_smi_init(struct smi_info *new_smi)
 }
 
 rv = ipmi_smi_add_proc_entry(new_smi-&amp;gt;intf, "si_stats",
-     stat_file_read_proc,
+     &amp;amp;smi_si_stats_proc_ops,
      new_smi);
 if (rv) {
 dev_err(new_smi-&amp;gt;dev, "Unable to create proc entry: %d\n", rv);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3270,7 +3302,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int try_smi_init(struct smi_info *new_smi)
 }
 
 rv = ipmi_smi_add_proc_entry(new_smi-&amp;gt;intf, "params",
-     param_read_proc,
+     &amp;amp;smi_params_proc_ops,
      new_smi);
 if (rv) {
 dev_err(new_smi-&amp;gt;dev, "Unable to create proc entry: %d\n", rv);
--- a/include/linux/ipmi_smi.h
+++ b/include/linux/ipmi_smi.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -236,7 +236,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static inline void ipmi_free_smi_msg(struct ipmi_smi_msg *msg)
    directory for this interface.  Note that the entry will
    automatically be dstroyed when the interface is destroyed. */
 int ipmi_smi_add_proc_entry(ipmi_smi_t smi, char *name,
-    read_proc_t *read_proc,
+    const struct file_operations *proc_ops,
     void *data);
 
 #endif /* __LINUX_IPMI_SMI_H */

------------------------------------------------------------------------------
What Every C/C++ and Fortran developer Should Know!
Read this article and learn how Intel has extended the reach of its 
next-generation tools to help Windows* and Linux* C/C++ and Fortran 
developers boost performance applications - including clusters. 
http://p.sf.net/sfu/intel-dev2devmay
&lt;/pre&gt;</description>
    <dc:creator>Alexey Dobriyan</dc:creator>
    <dc:date>2011-05-13T20:13:08</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.kernel.openipmi/1891">
    <title>Reading PICMG extension version</title>
    <link>http://comments.gmane.org/gmane.linux.kernel.openipmi/1891</link>
    <description>&lt;pre&gt;Hi All, 
I want to read PICMG properties of any AMC card connected to my chasis. How can i do that? 
If I fire a command "ipmitool -I lan -H &amp;lt;ipaddress&amp;gt; picmg properties", I get only properties of my chasis AMC controller, But I want to read PICMG properties of all the AMC card connected to chasis. 

I am using NAT-MCH. 

Thanks &amp;amp; Regards, 
rakesh Modi 
------------------------------------------------------------------------------
WhatsUp Gold - Download Free Network Management Software
The most intuitive, comprehensive, and cost-effective network 
management toolset available today.  Delivers lowest initial 
acquisition cost and overall TCO of any competing solution.
http://p.sf.net/sfu/whatsupgold-sd_______________________________________________
Openipmi-developer mailing list
Openipmi-developer&amp;lt; at &amp;gt;lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openipmi-developer
&lt;/pre&gt;</description>
    <dc:creator>Rakesh Modi - Embedded</dc:creator>
    <dc:date>2011-04-28T12:46:40</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.kernel.openipmi/1890">
    <title>Listing FRU data using ipmish</title>
    <link>http://comments.gmane.org/gmane.linux.kernel.openipmi/1890</link>
    <description>&lt;pre&gt;Hello 

I am trying to display FRU data using the impish tool. Scenario here is
I am connecting to the shelfmanager and get try to get the fru info for
whole shelf. 

root&amp;lt; at &amp;gt;ATCA-IS&amp;gt; ipmish
#Here it display hell lot of events which I don't require. 
Domain
  Name: shmm1
  FRUs
#fru list does not list any FRUs. 


Here my question is, what is wrong in the above command set? And if this
is not the way than how to get the full fru info (including multirecord
values) using ipmi.

Using ipmitool I am able to get the basic fru info but I need fru
multirecored data fields also so that does not serve the purpose. 

Thanks &amp;amp; Regards, 
Wasim Mansuri



------------------------------------------------------------------------------
WhatsUp Gold - Download Free Network Management Software
The most intuitive, comprehensive, and cost-effective network 
management toolset available today.  Delivers lowest initial 
acquisition cost and overall TCO of any competing solution.
http://p.sf.net/sfu/whatsupgold-sd
&lt;/pre&gt;</description>
    <dc:creator>Mansuri, Wasim (NSN - IN/Bangalore</dc:creator>
    <dc:date>2011-05-04T12:05:25</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.kernel.openipmi/1886">
    <title>How to compiled openipmi-python module</title>
    <link>http://comments.gmane.org/gmane.linux.kernel.openipmi/1886</link>
    <description>&lt;pre&gt;HI~

    Who can provide the way to  compiled openipmi-python module ?
    when compiled OpenIPMI i give the
"--with-python=/usr/bin/python2.5
--with-pythoninstall=/usr/lib/python2.5/site-packages" but it don't
work .

    thanks all~~


Nothing is Sound.

------------------------------------------------------------------------------
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
&lt;/pre&gt;</description>
    <dc:creator>白白wong</dc:creator>
    <dc:date>2011-04-17T04:07:57</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.kernel.openipmi/1885">
    <title>OpenIPMI serial emulator problem</title>
    <link>http://comments.gmane.org/gmane.linux.kernel.openipmi/1885</link>
    <description>&lt;pre&gt;Hi ,

  I am trying the IPMI serial emulator application on linux(Fedora) PC.
Since i dont have BMC hardware and server , i want to understand the IPMI
message flow by using IPMI serial BMC emulator.

 Here is my test setup

  PC1
-----------
1) Having the OpneIPMI libraries and tools, ipmitool
2) Inserted the ipmi_msghandler.ko, ipmi_devintf.ko, ipmi_seria.ko,
ipmi_serial_terminal_mode.ko, ipmi_serial_direct.ko,
ipmi_serial_radisys_ascii.ko
3) Could not load ipmi_si.ko since it is not able to detect the system
interface.
4) I have run the below command after starting the "ser2net" module on PC2,
it is able to accept the connection(If LAN connection is there)
       ./sample/ipmi_serial_bmc_emu -c TerminalMode -a ttyS0 -o PigeonPoint
192.168.2.62 2001
5) PC1 and PC2 are connected with RS232 cable.
6) Fedora core is running with compiled kernel 2.6.30 alond with concerned
parches.
7)  I am getting the below error when i run the command   "sudo ipmitool -v
-d /dev/ipmi0  session info all"
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Could not open device at /dev/ipmi0 or /dev/ipmi/0 or /dev/ipmidev/0: No
such file or directory
Get Session Info command failed
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------


PC2
---------
1) Running Fedora core 14 with kernel 2.6.35
2) installed ser2net application and started the service


So, when i run the ipmi tool, may be it is trying to see the registered
interfaces where we could not load  , SI, KCS, SMIC,BT modules.

Can any one suggest me the correct procedure to test the  "
sample/ipmi_serial_bmc_emu.c"  application along with IPMI driver.

Please let me know if any mistakes are there in the test procedure.

Thanks,
Sai
------------------------------------------------------------------------------
Forrester Wave Report - Recovery time is now measured in hours and minutes
not days. Key insights are discussed in the 2010 Forrester Wave Report as
part of an in-depth evaluation of disaster recovery service providers.
Forrester found the best-in-class provider in terms of services and vision.
Read this report now!  http://p.sf.net/sfu/ibm-webcastpromo_______________________________________________
Openipmi-developer mailing list
Openipmi-developer&amp;lt; at &amp;gt;lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openipmi-developer
&lt;/pre&gt;</description>
    <dc:creator>saikrishna gajula</dc:creator>
    <dc:date>2011-04-13T13:34:55</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.kernel.openipmi/1882">
    <title>[PATCH] ipmi: Fix IPMI errors due to timingproblems</title>
    <link>http://comments.gmane.org/gmane.linux.kernel.openipmi/1882</link>
    <description>&lt;pre&gt;From: Doe, YiCheng &amp;lt;yicheng.doe&amp;lt; at &amp;gt;hp.com&amp;gt;

This patch fixes an issue in OpenIPMI module where sometimes an ABORT command
is sent after sending an IPMI request to BMC causing the IPMI request to fail.

Signed-off-by: YiCheng Doe &amp;lt;yicheng.doe&amp;lt; at &amp;gt;hp.com&amp;gt;
Signed-off-by: Corey Minyard &amp;lt;cminyard&amp;lt; at &amp;gt;mvista.com&amp;gt;
Acked-by: Tom Mingarelli &amp;lt;thomas.mingarelli&amp;lt; at &amp;gt;hp.com&amp;gt;
Tested-by: Andy Cress &amp;lt;andy.cress&amp;lt; at &amp;gt;us.kontron.com&amp;gt;
Tested-by: Mika Lansirine &amp;lt;Mika.Lansirinne&amp;lt; at &amp;gt;stonesoft.com&amp;gt;
Tested-by: Brian De Wolf &amp;lt;bldewolf&amp;lt; at &amp;gt;csupomona.edu&amp;gt;
Cc: Jean Michel Audet &amp;lt;Jean-Michel.Audet&amp;lt; at &amp;gt;ca.Kontron.com&amp;gt;
Cc: Jozef Sudelsky &amp;lt;jozef.sudolsky&amp;lt; at &amp;gt;elbiahosting.sk&amp;gt;
Cc: Matthew Garrett &amp;lt;mjg&amp;lt; at &amp;gt;redhat.com&amp;gt;
---
 drivers/char/ipmi/ipmi_si_intf.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
index 7855f9f..62787e3 100644
--- a/drivers/char/ipmi/ipmi_si_intf.c
+++ b/drivers/char/ipmi/ipmi_si_intf.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -900,6 +900,14 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void sender(void                *send_info,
 printk("**Enqueue: %d.%9.9d\n", t.tv_sec, t.tv_usec);
 #endif
 
+/*
+ * last_timeout_jiffies is updated here to avoid
+ * smi_timeout() handler passing very large time_diff
+ * value to smi_event_handler() that causes
+ * the send command to abort.
+ */
+smi_info-&amp;gt;last_timeout_jiffies = jiffies;
+
 mod_timer(&amp;amp;smi_info-&amp;gt;si_timer, jiffies + SI_TIMEOUT_JIFFIES);
 
 if (smi_info-&amp;gt;thread)
&lt;/pre&gt;</description>
    <dc:creator>Corey Minyard</dc:creator>
    <dc:date>2011-03-10T20:00:21</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.kernel.openipmi/1877">
    <title>OpenIPMI and CPU temperature</title>
    <link>http://comments.gmane.org/gmane.linux.kernel.openipmi/1877</link>
    <description>&lt;pre&gt;Hello,

 

I'm currently researching how to use OpenIPMI to obtain sensor readings,
specifically for an Intel Xeon 5500 CPU. I am wondering: Is it possible
to obtain this reading through OpenIPMI, or should I use something else?


 

One of the reasons why I ask this is, from what I've found out, the
temperature of the CPU can be read from an MSR - does the BMC get access
to this, so that I can eventually use OpenIPMI to obtain this reading?
Also, when I use ipmitool, the CPU temperature reading that I get is " 0
unspecified" - this tells me that the SDR doesn't have a temperature
reading (unless I need some extra driver specific for this?). Please
correct me if I'm wrong - I've only started looking over the IPMI
concepts.

 

Thanks for your help,

Sandra

------------------------------------------------------------------------------
Free Software Download: Index, Search &amp;amp; Analyze Logs and other IT data in 
Real-Time with Splunk. Collect, index and harness all the fast moving IT data 
generated by your applications, servers and devices whether physical, virtual
or in the cloud. Deliver compliance at lower cost and gain new business 
insights. http://p.sf.net/sfu/splunk-dev2dev _______________________________________________
Openipmi-developer mailing list
Openipmi-developer&amp;lt; at &amp;gt;lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openipmi-developer
&lt;/pre&gt;</description>
    <dc:creator>Sandra Escandor</dc:creator>
    <dc:date>2011-02-24T15:49:25</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.kernel.openipmi/1867">
    <title>Status of OpenIPMI integration into kernel</title>
    <link>http://comments.gmane.org/gmane.linux.kernel.openipmi/1867</link>
    <description>&lt;pre&gt;Hi all,

Are there any efforts to submit the OpenIPMI kernel patches
for integration into the mainline kernel ?

Thanks,
Guenter


------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
&lt;/pre&gt;</description>
    <dc:creator>Guenter Roeck</dc:creator>
    <dc:date>2011-01-23T17:34:32</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.kernel.openipmi/1863">
    <title>[PATCH] char/ipmi: fix OOPS caused by pnp_unregister_driver on unregistered driver</title>
    <link>http://comments.gmane.org/gmane.linux.kernel.openipmi/1863</link>
    <description>&lt;pre&gt;This patch fixes an OOPS triggered when calling modprobe ipmi_si a
second time after the first modprobe returned without finding any ipmi
devices.  This can happen if you reload the module after having the
first module load fail.  The driver was not deregistering from
PNP in that case.

Peter Huewe originally reported this patch and supplied a fix, I have
a different patch based on Linus' suggestion that cleans things up a
bit more.

KernelVersion: 2.6.37
Cc: &amp;lt;stable&amp;lt; at &amp;gt;kernel.org&amp;gt;
Cc: &amp;lt;openipmi-developer&amp;lt; at &amp;gt;lists.sourceforge.net&amp;gt;
Cc: Peter Huewe &amp;lt;peterhuewe&amp;lt; at &amp;gt;gmx.de&amp;gt;
Cc: Randy Dunlap &amp;lt;randy.dunlap&amp;lt; at &amp;gt;oracle.com&amp;gt;
Signed-off-by: Corey Minyard &amp;lt;cminyard&amp;lt; at &amp;gt;mvista.com&amp;gt;
---
 drivers/char/ipmi/ipmi_si_intf.c |   12 ++----------
 1 files changed, 2 insertions(+), 10 deletions(-)

diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
index b6ae6e9..7855f9f 100644
--- a/drivers/char/ipmi/ipmi_si_intf.c
+++ b/drivers/char/ipmi/ipmi_si_intf.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -320,6 +320,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int unload_when_empty = 1;
 static int add_smi(struct smi_info *smi);
 static int try_smi_init(struct smi_info *smi);
 static void cleanup_one_si(struct smi_info *to_clean);
+static void cleanup_ipmi_si(void);
 
 static ATOMIC_NOTIFIER_HEAD(xaction_notifier_list);
 static int register_xaction_notifier(struct notifier_block *nb)
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3450,16 +3451,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int __devinit init_ipmi_si(void)
 mutex_lock(&amp;amp;smi_infos_lock);
 if (unload_when_empty &amp;amp;&amp;amp; list_empty(&amp;amp;smi_infos)) {
 mutex_unlock(&amp;amp;smi_infos_lock);
-#ifdef CONFIG_PCI
-if (pci_registered)
-pci_unregister_driver(&amp;amp;ipmi_pci_driver);
-#endif
-
-#ifdef CONFIG_PPC_OF
-if (of_registered)
-of_unregister_platform_driver(&amp;amp;ipmi_of_platform_driver);
-#endif
-driver_unregister(&amp;amp;ipmi_driver.driver);
+cleanup_ipmi_si();
 printk(KERN_WARNING PFX
        "Unable to find any System Interface(s)\n");
 return -ENODEV;
&lt;/pre&gt;</description>
    <dc:creator>Corey Minyard</dc:creator>
    <dc:date>2011-02-10T22:08:38</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.kernel.openipmi/1862">
    <title>Is there potential bugs in ipmi_smi.c</title>
    <link>http://comments.gmane.org/gmane.linux.kernel.openipmi/1862</link>
    <description>&lt;pre&gt;Hi

I was just looking at source code file lib/ipmi_smi.c
I think this code seems to have a potential bugs.
But actually I haven't encountered a bug yet.

I try to make a patch.
It move a stop_timer handler before cleanup the pending_cmds.
And add a cmd_lock and cmd_handlers_lock.

Is my patch reasonable ?

Thanks in advance,
Naohiro Ooiwa.


Signed-off-by: Naohiro Ooiwa &amp;lt;naohiro.ooiwa&amp;lt; at &amp;gt;miraclelinux.com&amp;gt;
---
 ipmi_smi.c |   24 ++++++++++++++----------
 1 file changed, 14 insertions(+), 10 deletions(-)

--- lib/ipmi_smi.c.orig2010-01-04 23:46:15.000000000 +0900
+++ lib/ipmi_smi.c2011-01-31 11:20:21.000000000 +0900
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -188,8 +188,20 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; smi_cleanup(ipmi_con_t *ipmi)
     if (smi-&amp;gt;close_done)
 smi-&amp;gt;close_done(ipmi, smi-&amp;gt;close_cb_data);

+    if (smi-&amp;gt;audit_info) {
+rv = ipmi-&amp;gt;os_hnd-&amp;gt;stop_timer(ipmi-&amp;gt;os_hnd, smi-&amp;gt;audit_timer);
+if (rv)
+    smi-&amp;gt;audit_info-&amp;gt;cancelled = 1;
+else {
+    ipmi-&amp;gt;os_hnd-&amp;gt;free_timer(ipmi-&amp;gt;os_hnd, smi-&amp;gt;audit_timer);
+    ipmi_mem_free(smi-&amp;gt;audit_info);
+}
+    }
+
+    ipmi_lock(smi-&amp;gt;cmd_lock);
     cmd = smi-&amp;gt;pending_cmds;
     smi-&amp;gt;pending_cmds = NULL;
+    ipmi_unlock(smi-&amp;gt;cmd_lock);
     while (cmd) {
 ipmi_addr_t   *addr;
 unsigned int  addr_len;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -216,24 +228,16 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; smi_cleanup(ipmi_con_t *ipmi)
 cmd = next_cmd;
     }

+    ipmi_lock(smi-&amp;gt;cmd_handlers_lock);
     hnd_to_free = smi-&amp;gt;cmd_handlers;
     smi-&amp;gt;cmd_handlers = NULL;
+    ipmi_unlock(smi-&amp;gt;cmd_handlers_lock);
     while (hnd_to_free) {
 next_hnd = hnd_to_free-&amp;gt;next;
 ipmi_mem_free(hnd_to_free);
 hnd_to_free = next_hnd;
     }

-    if (smi-&amp;gt;audit_info) {
-rv = ipmi-&amp;gt;os_hnd-&amp;gt;stop_timer(ipmi-&amp;gt;os_hnd, smi-&amp;gt;audit_timer);
-if (rv)
-    smi-&amp;gt;audit_info-&amp;gt;cancelled = 1;
-else {
-    ipmi-&amp;gt;os_hnd-&amp;gt;free_timer(ipmi-&amp;gt;os_hnd, smi-&amp;gt;audit_timer);
-    ipmi_mem_free(smi-&amp;gt;audit_info);
-}
-    }
-
     if (ipmi-&amp;gt;oem_data_cleanup)
 ipmi-&amp;gt;oem_data_cleanup(ipmi);
     ipmi_con_attr_cleanup(ipmi);

------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
http://p.sf.net/sfu/arcsight-sfd2d
&lt;/pre&gt;</description>
    <dc:creator>Naohiro Ooiwa</dc:creator>
    <dc:date>2011-01-31T03:15:59</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.kernel.openipmi/1859">
    <title>Is OIPMI_TESTSUITE still qualified to testlibOpenIPMI library?</title>
    <link>http://comments.gmane.org/gmane.linux.kernel.openipmi/1859</link>
    <description>&lt;pre&gt;Hi, Experts,

I am just using libOpenIPMI to make it work on Oracle Solaris 11, and after
build the OpenIPMI 2.0 library, to verify if the functionalities are OK on
Solaris, I pulled over the test suite within OpenIPMI sourceforge website,
as following.

   http://sourceforge.net/projects/openipmi/files/Test%20Suite/

The library I used is OpenIPMI 2.0.18, and the test suite is
openipmi_testsuite_1.01.tgz

However, the test suite could not run on OpenIPMI 2.0 at all on Solaris. It
is always return memory violation, as following.
# cat /etc/release
                      Oracle Solaris 11 Express snv_156 X86
     Copyright (c) 2011, Oracle and/or its affiliates.  All rights reserved.
                           Assembled 30 December 2010

# ./control_id.test &amp;lt;user&amp;gt; &amp;lt;password&amp;gt;
setup connection
Segmentation Fault (core dumped)
root&amp;lt; at &amp;gt;ns-x4200-2:/export/OIPMI_TESTSUITE/IPMI1.5/generic-platform# mdb core
Loading modules: [ libc.so.1 ld.so.1 ]
0x100bd6dc(fefa06d0, 8047ae8, fee90018, 490)
libOpenIPMIutils.so.0.0.1`locked_list_alloc+0x40(fefa06d0, 805b294, 1f,
8047be8
, 805aa2f, 0)
libOpenIPMI.so.0.0.5`setup_domain+0x18f(1, 0, 0, 8047b88)
libOpenIPMI.so.0.0.5`ipmi_open_domain+0x46(805b294, 8047be8, 1, 80575fb, 0,
80577c1)
main+0x13d(3, 8047c24, 8047c34, 8047c18, 8056c9a, 805b180)
_start+0x83(3, 8047cfc, 8047d0e, 8047d14, 0, 8047d1d)


Also, I run the same test on Ubuntu Linux 2.6.32, its segment fails, either,
with same code stack.
# gdb ./control_id.test
GNU gdb (GDB) 7.1-ubuntu
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later &amp;lt;http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
&amp;lt;http://www.gnu.org/software/gdb/bugs/&amp;gt;...
Reading symbols from
/home/jason/OIPMI_TESTSUITE/IPMI1.5/generic-platform/control_id.test...done.
(gdb) r &amp;lt;user&amp;gt; &amp;lt;password&amp;gt;
Starting program:
/home/jason/OIPMI_TESTSUITE/IPMI1.5/generic-platform/control_id.test &amp;lt;user&amp;gt;
&amp;lt;password&amp;gt;
setup connection

Program received signal SIGSEGV, Segmentation fault.
0xb7fe1b20 in ?? ()
(gdb) bt
#0  0xb7fe1b20 in ?? ()
#1  0xb7f4d9b3 in ipmi_open_domain (name=0x8052493 "first", con=0xbffff69c,
num_con=1, con_change_handler=0x804e435 &amp;lt;setup_done&amp;gt;,
con_change_cb_data=0x0, domain_fully_up=0x804e607 &amp;lt;domain_ptr_cb&amp;gt;,
    domain_fully_up_cb_data=0x0, options=0x0, num_options=0,
new_domain=0x8055544) at domain.c:4748
#2  0x0804df7a in main (argc=3, argv=0xbffff774) at control_id.c:161


When I read the lib/locks.c, it looks like it "lock-&amp;gt;os_hnd-&amp;gt;create_lock"
points to an invalid memory, and up stream code "ipmi_mem_alloc" doesn't
provide a valid create_lock handler at all.

=======   lib/locks.c   ==========
...
78   lock = ipmi_mem_alloc(sizeof(*lock));         &amp;lt;---------   Not register
valid os_hnd-&amp;gt;create_lock callback at all.
79    if (!lock)
80       return ENOMEM;
81
82    lock-&amp;gt;os_hnd = os_hnd;
83    if (lock-&amp;gt;os_hnd &amp;amp;&amp;amp; lock-&amp;gt;os_hnd-&amp;gt;create_lock) {
84        rv = lock-&amp;gt;os_hnd-&amp;gt;create_lock(lock-&amp;gt;os_hnd, &amp;amp;(lock-&amp;gt;ll_lock))
&amp;lt;---- panic here, since create_lock refer to an invalid memory heap.
...
===========================


Here are some questions:
1. Is that a bug for OpenIPMI 2.0 library?
2. Or is it because I use wrong tests against it? (i.e., not
openipmi_testsuite_1.01.tgz?),  and where can I find available test to be
run regularly as regression?

Thanks
Jason
------------------------------------------------------------------------------
Protect Your Site and Customers from Malware Attacks
Learn about various malware tactics and how to avoid them. Understand 
malware threats, the impact they can have on your business, and how you 
can protect your company and customers by using code signing.
http://p.sf.net/sfu/oracle-sfdevnl_______________________________________________
Openipmi-developer mailing list
Openipmi-developer&amp;lt; at &amp;gt;lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openipmi-developer
&lt;/pre&gt;</description>
    <dc:creator>Jason Zhao</dc:creator>
    <dc:date>2011-01-13T06:05:13</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.kernel.openipmi/1856">
    <title>ipmi: reduce polling patch disrupts IPMIwatchdog</title>
    <link>http://comments.gmane.org/gmane.linux.kernel.openipmi/1856</link>
    <description>&lt;pre&gt;Hello, in last October I upgraded to 2.6.35 on a Sun Fire X4100 and found that
starting the watchdog no longer worked.  It produces this output when
started:

Oct 21 15:50:14 stephen watchdog[4725]: starting daemon (5.6):
Oct 21 15:50:14 stephen watchdog[4725]: int=30s realtime=yes sync=no soft=no mla=0 mem=0
Oct 21 15:50:14 stephen watchdog[4725]: ping: no machine to check
Oct 21 15:50:14 stephen watchdog[4725]: file: no file to check
Oct 21 15:50:14 stephen watchdog[4725]: pidfile: no server process to check
Oct 21 15:50:14 stephen watchdog[4725]: interface: no interface to check
Oct 21 15:50:14 stephen watchdog[4725]: test=none(0) repair=none alive=/dev/watchdog heartbeat=none temp=none to=root no_act=no
Oct 21 15:50:14 stephen kernel: IPMI message handler: BMC returned incorrect response, expected netfn 7 cmd 22, got netfn 7 cmd 24
Oct 21 15:50:14 stephen kernel: IPMI Watchdog: response: Error ff on cmd 22
Oct 21 15:50:14 stephen watchdog[4725]: write watchdog device gave error 22 = 'Invalid argument'!
Oct 21 15:51:15 stephen kernel: IPMI message handler: BMC returned incorrect response, expected netfn 7 cmd 35, got netfn 7 cmd 22
Oct 21 15:51:15 stephen kernel: IPMI message handler: BMC returned incorrect response, expected netfn 7 cmd 22, got netfn 7 cmd 35


After some bisecting, I found that the patch that causes this is a
patch to reduce ipmi polling:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=3326f4f2276791561af1fd5f2020be0186459813

Unfortunately, the system is unstable if I reverse this patch.  It
crashes with "kernel BUG at kernel/timer.c:851!" (I can provide this
output as requested)


I originally sent this directly to Matthew Garrett but he hasn't been
responsive for the last month or two, and I would like to eventually be
able to upgrade to a new kernel without losing functionality.  Matthew
provided a workaround patch, but it still produced error output
infrequently.  He said it wasn't clean enough for upstream, but
hopefully it will give some indication to what he found the problem to
be:

diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
index e829053..3f1e856 100644
--- a/drivers/char/ipmi/ipmi_si_intf.c
+++ b/drivers/char/ipmi/ipmi_si_intf.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -316,6 +316,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int unload_when_empty = 1;
 static int add_smi(struct smi_info *smi);
 static int try_smi_init(struct smi_info *smi);
 static void cleanup_one_si(struct smi_info *to_clean);
+static void smi_timeout(unsigned long data);
 
 static ATOMIC_NOTIFIER_HEAD(xaction_notifier_list);
 static int register_xaction_notifier(struct notifier_block *nb)
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -896,6 +897,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void sender(void                *send_info,
 #endif
 
 mod_timer(&amp;amp;smi_info-&amp;gt;si_timer, jiffies + SI_TIMEOUT_JIFFIES);
+smi_timeout((unsigned long)smi_info);
 
 if (smi_info-&amp;gt;thread)
 wake_up_process(smi_info-&amp;gt;thread);

------------------------------------------------------------------------------
Gaining the trust of online customers is vital for the success of any company
that requires sensitive data to be transmitted over the Web.   Learn how to 
best implement a security strategy that keeps consumers' information secure 
and instills the confidence they need to proceed with transactions.
http://p.sf.net/sfu/oracle-sfdevnl 
&lt;/pre&gt;</description>
    <dc:creator>Brian De Wolf</dc:creator>
    <dc:date>2011-01-11T00:49:17</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.linux.kernel.openipmi/1836">
    <title>Requirements of running OIPMI TESTSUITE?</title>
    <link>http://comments.gmane.org/gmane.linux.kernel.openipmi/1836</link>
    <description>&lt;pre&gt;Hi, Experts,

I am trying to test my IPMI driver on Linux, and I downloaded the test suite
of OIPMI_TESTSUITE from sourceforge.&amp;lt;
http://sourceforge.net/projects/openipmi/files/Test%20Suite/1.01/openipmi_testsuite_1.01.tgz/download

The compile and build are smoothly successful, however,  when I tried to run
the test, it could not connect to IPMI elom by lan.

# ipmicmd -k "0f 00 06 2f" -U &amp;lt;username&amp;gt; -P &amp;lt;password&amp;gt; -A none -L admin &amp;lt;ip
address of elom&amp;gt;
Unable to setup connection: 2000011

And "ipmitool" could work without any problem,
# ipmitool -I lan -U &amp;lt;username&amp;gt; -H &amp;lt;ip address of elom&amp;gt; mc info
Password:
Device ID                 : 32
Device Revision           : 1
Firmware Revision         : 1.0
IPMI Version              : 2.0
Manufacturer ID           : 42
Manufacturer Name         : Sun Microsystems
Product ID                : 18177 (0x4701)
Product Name              : Unknown (0x4701)
Device Available          : yes
Provides Device SDRs      : no
Additional Device Support :
    Sensor Device
    SDR Repository Device
    SEL Device
    FRU Inventory Device
    IPMB Event Receiver
    IPMB Event Generator
    Chassis Device
Aux Firmware Rev Info     :
    0x00
    0x00
    0x00
    0x00

Does any expert tell me how to make "ipmicmd" run against the elom? Or what
configuration should I do beforehand to make "ipmicmd" run?

Great Thanks
Jason
------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App &amp;amp; Earn a Chance To Win $500!
Tap into the largest installed PC base &amp;amp; get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev_______________________________________________
Openipmi-developer mailing list
Openipmi-developer&amp;lt; at &amp;gt;lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openipmi-developer
&lt;/pre&gt;</description>
    <dc:creator>Jason Zhao</dc:creator>
    <dc:date>2010-11-29T09:31:41</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.linux.kernel.openipmi">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.linux.kernel.openipmi</link>
  </textinput>
</rdf:RDF>

