<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/char/ipmi, branch v4.7-rc2</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>ipmi: Fix the I2C address extraction from SPMI tables</title>
<updated>2016-05-17T00:49:49+00:00</updated>
<author>
<name>Corey Minyard</name>
<email>cminyard@mvista.com</email>
</author>
<published>2016-05-06T17:57:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=70f95b76f155153a2a51a9a4568b9bcd4e573f5c'/>
<id>70f95b76f155153a2a51a9a4568b9bcd4e573f5c</id>
<content type='text'>
Unlike everywhere else in the IPMI specification, the I2C address
specified in the SPMI table is not shifted to the left one bit with
the LSB zero.  Instead it is not shifted with the MSB zero.

Reported-by: Sanjeev &lt;singhsan@codeaurora.org&gt;
Signed-off-by: Corey Minyard &lt;cminyard@mvista.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Unlike everywhere else in the IPMI specification, the I2C address
specified in the SPMI table is not shifted to the left one bit with
the LSB zero.  Instead it is not shifted with the MSB zero.

Reported-by: Sanjeev &lt;singhsan@codeaurora.org&gt;
Signed-off-by: Corey Minyard &lt;cminyard@mvista.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IPMI: reserve memio regions separately</title>
<updated>2016-05-17T00:49:48+00:00</updated>
<author>
<name>Corey Minyard</name>
<email>cminyard@mvista.com</email>
</author>
<published>2016-04-27T03:25:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=57a38f1340eb2b036dbc4ec34f4a14603e5dd47c'/>
<id>57a38f1340eb2b036dbc4ec34f4a14603e5dd47c</id>
<content type='text'>
Commit d61a3ead2680 ("[PATCH] IPMI: reserve I/O ports separately")
changed the way I/O ports were reserved and includes this comment in
log:

 Some BIOSes reserve disjoint I/O regions in their ACPI tables for the IPMI
 controller.  This causes problems when trying to register the entire I/O
 region.  Therefore we must register each I/O port separately.

There is a similar problem with memio regions on an arm64 platform
(AMD Seattle). Where I see:

 ipmi message handler version 39.2
 ipmi_si AMDI0300:00: probing via device tree
 ipmi_si AMDI0300:00: ipmi_si: probing via ACPI
 ipmi_si AMDI0300:00: [mem 0xe0010000] regsize 1 spacing 4 irq 23
 ipmi_si: Adding ACPI-specified kcs state machine
 IPMI System Interface driver.
 ipmi_si: Trying ACPI-specified kcs state machine at mem \
          address 0xe0010000, slave address 0x0, irq 23
 ipmi_si: Could not set up I/O space

The problem is that the ACPI core registers disjoint regions for the
platform device:

e0010000-e0010000 : AMDI0300:00
e0010004-e0010004 : AMDI0300:00

and the ipmi_si driver tries to register one region e0010000-e0010004.

Based on a patch from Mark Salter &lt;msalter@redhat.com&gt;, who also wrote
all the above text.

Signed-off-by: Corey Minyard &lt;cminyard@mvista.com&gt;
Tested-by: Mark Salter &lt;msalter@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Commit d61a3ead2680 ("[PATCH] IPMI: reserve I/O ports separately")
changed the way I/O ports were reserved and includes this comment in
log:

 Some BIOSes reserve disjoint I/O regions in their ACPI tables for the IPMI
 controller.  This causes problems when trying to register the entire I/O
 region.  Therefore we must register each I/O port separately.

There is a similar problem with memio regions on an arm64 platform
(AMD Seattle). Where I see:

 ipmi message handler version 39.2
 ipmi_si AMDI0300:00: probing via device tree
 ipmi_si AMDI0300:00: ipmi_si: probing via ACPI
 ipmi_si AMDI0300:00: [mem 0xe0010000] regsize 1 spacing 4 irq 23
 ipmi_si: Adding ACPI-specified kcs state machine
 IPMI System Interface driver.
 ipmi_si: Trying ACPI-specified kcs state machine at mem \
          address 0xe0010000, slave address 0x0, irq 23
 ipmi_si: Could not set up I/O space

The problem is that the ACPI core registers disjoint regions for the
platform device:

e0010000-e0010000 : AMDI0300:00
e0010004-e0010004 : AMDI0300:00

and the ipmi_si driver tries to register one region e0010000-e0010004.

Based on a patch from Mark Salter &lt;msalter@redhat.com&gt;, who also wrote
all the above text.

Signed-off-by: Corey Minyard &lt;cminyard@mvista.com&gt;
Tested-by: Mark Salter &lt;msalter@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipmi: Fix some minor coding style issues</title>
<updated>2016-05-17T00:49:48+00:00</updated>
<author>
<name>Corey Minyard</name>
<email>cminyard@mvista.com</email>
</author>
<published>2016-04-27T03:40:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=76824852a941375aad640b35025dac75d077113a'/>
<id>76824852a941375aad640b35025dac75d077113a</id>
<content type='text'>
Signed-off-by: Corey Minyard &lt;cminyard@mvista.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Corey Minyard &lt;cminyard@mvista.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipmi/watchdog: use nmi_panic() when kernel panics in NMI handler</title>
<updated>2016-03-22T22:36:02+00:00</updated>
<author>
<name>Hidehiro Kawai</name>
<email>hidehiro.kawai.ez@hitachi.com</email>
</author>
<published>2016-03-22T21:27:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=73cbf4a1ddfab247f9018550637c28a7d8dd9108'/>
<id>73cbf4a1ddfab247f9018550637c28a7d8dd9108</id>
<content type='text'>
Commit 1717f2096b54 ("panic, x86: Fix re-entrance problem due to panic
on NMI") introduced nmi_panic() which prevents concurrent and recursive
execution of panic().  It also saves registers for the crash dump on x86
by later commit 58c5661f2144 ("panic, x86: Allow CPUs to save registers
even if looping in NMI context").

ipmi_watchdog driver can call panic() from NMI handler, so replace it
with nmi_panic().

Signed-off-by: Hidehiro Kawai &lt;hidehiro.kawai.ez@hitachi.com&gt;
Acked-by: Corey Minyard &lt;cminyard@mvista.com&gt;
Acked-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Reviewed-by: Michal Hocko &lt;mhocko@suse.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Commit 1717f2096b54 ("panic, x86: Fix re-entrance problem due to panic
on NMI") introduced nmi_panic() which prevents concurrent and recursive
execution of panic().  It also saves registers for the crash dump on x86
by later commit 58c5661f2144 ("panic, x86: Allow CPUs to save registers
even if looping in NMI context").

ipmi_watchdog driver can call panic() from NMI handler, so replace it
with nmi_panic().

Signed-off-by: Hidehiro Kawai &lt;hidehiro.kawai.ez@hitachi.com&gt;
Acked-by: Corey Minyard &lt;cminyard@mvista.com&gt;
Acked-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Reviewed-by: Michal Hocko &lt;mhocko@suse.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipmi: do not probe ACPI devices if si_tryacpi is unset</title>
<updated>2016-03-18T12:01:24+00:00</updated>
<author>
<name>Joe Lawrence</name>
<email>joe.lawrence@stratus.com</email>
</author>
<published>2016-02-18T21:02:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=9f0257b39c138330fec96e0f8f1a0135c1f0b6a5'/>
<id>9f0257b39c138330fec96e0f8f1a0135c1f0b6a5</id>
<content type='text'>
Extend the tryacpi module parameter to turn off acpi_ipmi_probe such
that hard-coded options (type, ports, address, etc.) have complete
control over the smi_info data structures setup by the driver.

Signed-off-by: Joe Lawrence &lt;joe.lawrence@stratus.com&gt;
Signed-off-by: Corey Minyard &lt;cminyard@mvista.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Extend the tryacpi module parameter to turn off acpi_ipmi_probe such
that hard-coded options (type, ports, address, etc.) have complete
control over the smi_info data structures setup by the driver.

Signed-off-by: Joe Lawrence &lt;joe.lawrence@stratus.com&gt;
Signed-off-by: Corey Minyard &lt;cminyard@mvista.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipmi_si: Avoid a wrong long timeout on transaction done</title>
<updated>2016-03-18T12:01:23+00:00</updated>
<author>
<name>Corey Minyard</name>
<email>cminyard@mvista.com</email>
</author>
<published>2016-01-25T22:11:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=d9dffd2a0bd84039f1b4f7e8835f1b0bbde0b3a7'/>
<id>d9dffd2a0bd84039f1b4f7e8835f1b0bbde0b3a7</id>
<content type='text'>
Under some circumstances, the IPMI state machine could return
a call without delay option but the driver would still do a long
delay because the result wasn't checked.  Instead of calling
the state machine after transaction done, just go back to the
top of the processing to start over.

Signed-off-by: Corey Minyard &lt;cminyard@mvista.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Under some circumstances, the IPMI state machine could return
a call without delay option but the driver would still do a long
delay because the result wasn't checked.  Instead of calling
the state machine after transaction done, just go back to the
top of the processing to start over.

Signed-off-by: Corey Minyard &lt;cminyard@mvista.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipmi_si: Fix module parameter doc names</title>
<updated>2016-03-18T12:01:23+00:00</updated>
<author>
<name>Corey Minyard</name>
<email>cminyard@mvista.com</email>
</author>
<published>2016-01-19T20:51:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=f813655a36830c54111763ba1acdbb0fe35813d9'/>
<id>f813655a36830c54111763ba1acdbb0fe35813d9</id>
<content type='text'>
Several were tryacpi instead of their actual values.

Signed-off-by: Corey Minyard &lt;cminyard@mvista.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Several were tryacpi instead of their actual values.

Signed-off-by: Corey Minyard &lt;cminyard@mvista.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipmi_ssif: Fix logic around alert handling</title>
<updated>2016-03-18T12:01:23+00:00</updated>
<author>
<name>Corey Minyard</name>
<email>cminyard@mvista.com</email>
</author>
<published>2016-01-06T15:32:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=21c8f9154d9b3d2d84b619c2afdb6965f9d57975'/>
<id>21c8f9154d9b3d2d84b619c2afdb6965f9d57975</id>
<content type='text'>
There was a mistake in the logic, if an alert came in very quickly
it would hang the driver.

Signed-off-by: Corey Minyard &lt;cminyard@mvista.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There was a mistake in the logic, if an alert came in very quickly
it would hang the driver.

Signed-off-by: Corey Minyard &lt;cminyard@mvista.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipmi: put acpi.h with the other headers</title>
<updated>2016-02-03T16:35:52+00:00</updated>
<author>
<name>Tony Camuso</name>
<email>tcamuso@redhat.com</email>
</author>
<published>2016-02-02T18:57:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=58c9d61f86e86ebe1e45ac7a0cd89a2c6299b034'/>
<id>58c9d61f86e86ebe1e45ac7a0cd89a2c6299b034</id>
<content type='text'>
Enclosing '#include &lt;linux/acpi.h&gt;' within '#ifdef CONFIG_ACPI' is
unnecessary, since it has its own conditional compile for CONFIG_ACPI.

Commit 0fbcf4af7c83 ("ipmi: Convert the IPMI SI ACPI handling to a
platform device") exposed this as a problem for platforms that do not
support ACPI when it introduced a call to ACPI_PTR() macro outside of
the CONFIG_ACPI conditional compile. This would have been perfectly
acceptable if acpi.h were not conditionally excluded for the non-acpi
platform, because the conditional compile within acpi.h defines
ACPI_PTR() to return NULL when compiled for non acpi platforms.

Signed-off-by: Tony Camuso &lt;tcamuso@redhat.com&gt;

Fixed commit reference in header to conform to standard.

Signed-off-by: Corey Minyard &lt;cminyard@mvista.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Enclosing '#include &lt;linux/acpi.h&gt;' within '#ifdef CONFIG_ACPI' is
unnecessary, since it has its own conditional compile for CONFIG_ACPI.

Commit 0fbcf4af7c83 ("ipmi: Convert the IPMI SI ACPI handling to a
platform device") exposed this as a problem for platforms that do not
support ACPI when it introduced a call to ACPI_PTR() macro outside of
the CONFIG_ACPI conditional compile. This would have been perfectly
acceptable if acpi.h were not conditionally excluded for the non-acpi
platform, because the conditional compile within acpi.h defines
ACPI_PTR() to return NULL when compiled for non acpi platforms.

Signed-off-by: Tony Camuso &lt;tcamuso@redhat.com&gt;

Fixed commit reference in header to conform to standard.

Signed-off-by: Corey Minyard &lt;cminyard@mvista.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipmi: Remove unnecessary pci_disable_device.</title>
<updated>2016-01-12T21:08:49+00:00</updated>
<author>
<name>Dave Jones</name>
<email>dsj@fb.com</email>
</author>
<published>2015-11-20T00:24:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=bb0dcebef99fd024c0fb2703179bc7d1fd5ee995'/>
<id>bb0dcebef99fd024c0fb2703179bc7d1fd5ee995</id>
<content type='text'>
We call cleanup_one_si from ipmi_pci_remove, which calls -&gt;addr_source_cleanup,
 which gets set to point to ipmi_pci_cleanup, which does a pci_disable_device.

On return from this, we do a second pci_disable_device, which
results in the trace below.

ipmi_si 0000:00:16.0: disabling already-disabled device
Call Trace:
 [&lt;ffffffff818ce54c&gt;] dump_stack+0x45/0x57
 [&lt;ffffffff810525f7&gt;] warn_slowpath_common+0x97/0xe0
 [&lt;ffffffff810526f6&gt;] warn_slowpath_fmt+0x46/0x50
 [&lt;ffffffff81497ca1&gt;] pci_disable_device+0xb1/0xc0
 [&lt;ffffffffa00851a5&gt;] ipmi_pci_remove+0x25/0x30 [ipmi_si]
 [&lt;ffffffff8149a696&gt;] pci_device_remove+0x46/0xc0
 [&lt;ffffffff8156801f&gt;] __device_release_driver+0x7f/0xf0
 [&lt;ffffffff81568978&gt;] driver_detach+0xb8/0xc0
 [&lt;ffffffff81567e50&gt;] bus_remove_driver+0x50/0xa0
 [&lt;ffffffff8156914e&gt;] driver_unregister+0x2e/0x60
 [&lt;ffffffff8149a3e5&gt;] pci_unregister_driver+0x25/0x90
 [&lt;ffffffffa0085804&gt;] cleanup_ipmi_si+0xd4/0xf0 [ipmi_si]
 [&lt;ffffffff810c727a&gt;] SyS_delete_module+0x12a/0x200
 [&lt;ffffffff818d4d72&gt;] system_call_fastpath+0x12/0x17

Signed-off-by: Dave Jones &lt;dsj@fb.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We call cleanup_one_si from ipmi_pci_remove, which calls -&gt;addr_source_cleanup,
 which gets set to point to ipmi_pci_cleanup, which does a pci_disable_device.

On return from this, we do a second pci_disable_device, which
results in the trace below.

ipmi_si 0000:00:16.0: disabling already-disabled device
Call Trace:
 [&lt;ffffffff818ce54c&gt;] dump_stack+0x45/0x57
 [&lt;ffffffff810525f7&gt;] warn_slowpath_common+0x97/0xe0
 [&lt;ffffffff810526f6&gt;] warn_slowpath_fmt+0x46/0x50
 [&lt;ffffffff81497ca1&gt;] pci_disable_device+0xb1/0xc0
 [&lt;ffffffffa00851a5&gt;] ipmi_pci_remove+0x25/0x30 [ipmi_si]
 [&lt;ffffffff8149a696&gt;] pci_device_remove+0x46/0xc0
 [&lt;ffffffff8156801f&gt;] __device_release_driver+0x7f/0xf0
 [&lt;ffffffff81568978&gt;] driver_detach+0xb8/0xc0
 [&lt;ffffffff81567e50&gt;] bus_remove_driver+0x50/0xa0
 [&lt;ffffffff8156914e&gt;] driver_unregister+0x2e/0x60
 [&lt;ffffffff8149a3e5&gt;] pci_unregister_driver+0x25/0x90
 [&lt;ffffffffa0085804&gt;] cleanup_ipmi_si+0xd4/0xf0 [ipmi_si]
 [&lt;ffffffff810c727a&gt;] SyS_delete_module+0x12a/0x200
 [&lt;ffffffff818d4d72&gt;] system_call_fastpath+0x12/0x17

Signed-off-by: Dave Jones &lt;dsj@fb.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
