<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/char/ipmi, branch v4.5</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v4.5</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v4.5'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2016-02-03T16:35:52Z</updated>
<entry>
<title>ipmi: put acpi.h with the other headers</title>
<updated>2016-02-03T16:35:52Z</updated>
<author>
<name>Tony Camuso</name>
<email>tcamuso@redhat.com</email>
</author>
<published>2016-02-02T18:57:24Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=58c9d61f86e86ebe1e45ac7a0cd89a2c6299b034'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>ipmi: Remove unnecessary pci_disable_device.</title>
<updated>2016-01-12T21:08:49Z</updated>
<author>
<name>Dave Jones</name>
<email>dsj@fb.com</email>
</author>
<published>2015-11-20T00:24:33Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=bb0dcebef99fd024c0fb2703179bc7d1fd5ee995'/>
<id>urn:sha1: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>
</entry>
<entry>
<title>char: ipmi: Drop owner assignment from i2c_driver</title>
<updated>2016-01-12T21:08:49Z</updated>
<author>
<name>Krzysztof Kozlowski</name>
<email>k.kozlowski@samsung.com</email>
</author>
<published>2015-11-19T03:56:39Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=aad756f869c445488f814a2bff9211d81c46535e'/>
<id>urn:sha1:aad756f869c445488f814a2bff9211d81c46535e</id>
<content type='text'>
i2c_driver does not need to set an owner because i2c_register_driver()
will set it.

Signed-off-by: Krzysztof Kozlowski &lt;k.kozlowski@samsung.com&gt;
</content>
</entry>
<entry>
<title>ipmi: constify some struct and char arrays</title>
<updated>2016-01-12T21:08:49Z</updated>
<author>
<name>LABBE Corentin</name>
<email>clabbe.montjoie@gmail.com</email>
</author>
<published>2015-11-13T12:31:51Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=99ee67351bedf23fe6b969dd94cc2847b397cd20'/>
<id>urn:sha1:99ee67351bedf23fe6b969dd94cc2847b397cd20</id>
<content type='text'>
Lots of char arrays could be set as const since they contain only literal
char arrays.
We could in the same time make const some struct members who are pointer
to those const char arrays.

Signed-off-by: LABBE Corentin &lt;clabbe.montjoie@gmail.com&gt;
Signed-off-by: Corey Minyard &lt;cminyard@mvista.com&gt;
</content>
</entry>
<entry>
<title>ipmi: move timer init to before irq is setup</title>
<updated>2015-12-09T19:13:06Z</updated>
<author>
<name>Jan Stancek</name>
<email>jstancek@redhat.com</email>
</author>
<published>2015-12-08T18:57:51Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=27f972d3e00b50639deb4cc1392afaeb08d3cecc'/>
<id>urn:sha1:27f972d3e00b50639deb4cc1392afaeb08d3cecc</id>
<content type='text'>
We encountered a panic on boot in ipmi_si on a dell per320 due to an
uninitialized timer as follows.

static int smi_start_processing(void       *send_info,
                                ipmi_smi_t intf)
{
        /* Try to claim any interrupts. */
        if (new_smi-&gt;irq_setup)
                new_smi-&gt;irq_setup(new_smi);

 --&gt; IRQ arrives here and irq handler tries to modify uninitialized timer

    which triggers BUG_ON(!timer-&gt;function) in __mod_timer().

 Call Trace:
   &lt;IRQ&gt;
   [&lt;ffffffffa0532617&gt;] start_new_msg+0x47/0x80 [ipmi_si]
   [&lt;ffffffffa053269e&gt;] start_check_enables+0x4e/0x60 [ipmi_si]
   [&lt;ffffffffa0532bd8&gt;] smi_event_handler+0x1e8/0x640 [ipmi_si]
   [&lt;ffffffff810f5584&gt;] ? __rcu_process_callbacks+0x54/0x350
   [&lt;ffffffffa053327c&gt;] si_irq_handler+0x3c/0x60 [ipmi_si]
   [&lt;ffffffff810efaf0&gt;] handle_IRQ_event+0x60/0x170
   [&lt;ffffffff810f245e&gt;] handle_edge_irq+0xde/0x180
   [&lt;ffffffff8100fc59&gt;] handle_irq+0x49/0xa0
   [&lt;ffffffff8154643c&gt;] do_IRQ+0x6c/0xf0
   [&lt;ffffffff8100ba53&gt;] ret_from_intr+0x0/0x11

        /* Set up the timer that drives the interface. */
        setup_timer(&amp;new_smi-&gt;si_timer, smi_timeout, (long)new_smi);

The following patch fixes the problem.

To: Openipmi-developer@lists.sourceforge.net
To: Corey Minyard &lt;minyard@acm.org&gt;
CC: linux-kernel@vger.kernel.org

Signed-off-by: Jan Stancek &lt;jstancek@redhat.com&gt;
Signed-off-by: Tony Camuso &lt;tcamuso@redhat.com&gt;
Signed-off-by: Corey Minyard &lt;cminyard@mvista.com&gt;
Cc: stable@vger.kernel.org # Applies cleanly to 3.10-, needs small rework before
</content>
</entry>
<entry>
<title>ipmi watchdog : add panic_wdt_timeout parameter</title>
<updated>2015-11-16T12:28:43Z</updated>
<author>
<name>Jean-Yves Faye</name>
<email>jean-yves.faye@c-s.fr</email>
</author>
<published>2015-09-29T09:39:19Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=c7f42c63901b964833eb23a9bda873b799e7f308'/>
<id>urn:sha1:c7f42c63901b964833eb23a9bda873b799e7f308</id>
<content type='text'>
In order to allow panic actions to be processed, the ipmi watchdog
driver sets a new timeout value on panic. The 255s timeout
was designed to allow kdump and others actions on panic, as in
http://lkml.iu.edu/hypermail/linux/kernel/0711.3/0258.html

This is counter-intuitive for a end-user who sets watchdog timeout
value to something like 30s and who expects BMC to reset the system
within 30s of a panic.

This commit allows user to configure the timeout on panic.

Signed-off-by: Jean-Yves Faye &lt;jean-yves.faye@c-s.fr&gt;
Signed-off-by: Corey Minyard &lt;cminyard@mvista.com&gt;
</content>
</entry>
<entry>
<title>char: ipmi: Move MODULE_DEVICE_TABLE() to follow struct</title>
<updated>2015-11-16T03:08:26Z</updated>
<author>
<name>Luis de Bethencourt</name>
<email>luisbg@osg.samsung.com</email>
</author>
<published>2015-09-19T15:43:23Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=66f44018300c5e6f53c9d30d6920332cf0e6a8f9'/>
<id>urn:sha1:66f44018300c5e6f53c9d30d6920332cf0e6a8f9</id>
<content type='text'>
The policy for drivers is to have MODULE_DEVICE_TABLE() just after the
struct used in it. For clarity.

Suggested-by: Corey Minyard &lt;minyard@acm.org&gt;
Signed-off-by: Luis de Bethencourt &lt;luisbg@osg.samsung.com&gt;
Signed-off-by: Corey Minyard &lt;cminyard@mvista.com&gt;
</content>
</entry>
<entry>
<title>ipmi: Stop the timer immediately if idle</title>
<updated>2015-11-16T03:08:26Z</updated>
<author>
<name>Corey Minyard</name>
<email>cminyard@mvista.com</email>
</author>
<published>2015-09-05T22:58:13Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=314ef52fe67f8f03453b69169f954e2d04679bbd'/>
<id>urn:sha1:314ef52fe67f8f03453b69169f954e2d04679bbd</id>
<content type='text'>
The IPMI driver would let the final timeout just happen, but it could
easily just stop the timer.  If the timer stop fails that's ok, that
should be rare.

Signed-off-by: Corey Minyard &lt;cminyard@mvista.com&gt;
</content>
</entry>
<entry>
<title>ipmi: Start the timer and thread on internal msgs</title>
<updated>2015-11-16T03:08:26Z</updated>
<author>
<name>Corey Minyard</name>
<email>cminyard@mvista.com</email>
</author>
<published>2015-09-05T22:44:13Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=0cfec916e86d881e209de4b4ae9959a6271e6660'/>
<id>urn:sha1:0cfec916e86d881e209de4b4ae9959a6271e6660</id>
<content type='text'>
The timer and thread were not being started for internal messages,
so in interrupt mode if something hung the timer would never go
off and clean things up.  Factor out the internal message sending
and start the timer for those messages, too.

Signed-off-by: Corey Minyard &lt;cminyard@mvista.com&gt;
Tested-by: Gouji, Masayuki &lt;gouji.masayuki@jp.fujitsu.com&gt;
Cc: stable@vger.kernel.org
</content>
</entry>
<entry>
<title>char: ipmi: ipmi_ssif: Replace timeval with timespec64</title>
<updated>2015-10-25T02:46:42Z</updated>
<author>
<name>Amitoj Kaur Chawla</name>
<email>amitoj1606@gmail.com</email>
</author>
<published>2015-10-23T19:51:04Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=526290aa6288e133db18d64c2c175a0a1a58b438'/>
<id>urn:sha1:526290aa6288e133db18d64c2c175a0a1a58b438</id>
<content type='text'>
This patch replaces timeval with timespec64 as 32 bit 'struct timeval'
will not give current time beyond 2038.

The patch changes the code to use ktime_get_real_ts64() which returns
a 'struct timespec64' instead of do_gettimeofday() which returns a
'struct timeval'

This patch also alters the format string in pr_info() for now.tv_sec
to incorporate 'long long' on 32 bit architectures.

Signed-off-by: Amitoj Kaur Chawla &lt;amitoj1606@gmail.com&gt;
Reviewed-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
</feed>
