<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/char/ipmi, branch master</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=master</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2026-04-17T11:47:40+00:00</updated>
<entry>
<title>ipmi:ssif: Clean up kthread on errors</title>
<updated>2026-04-17T11:47:40+00:00</updated>
<author>
<name>Corey Minyard</name>
<email>corey@minyard.net</email>
</author>
<published>2026-04-13T13:00:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=75c486cb1bcaa1a3ec3a6438498176a3a4998ae4'/>
<id>urn:sha1:75c486cb1bcaa1a3ec3a6438498176a3a4998ae4</id>
<content type='text'>
If an error occurs after the ssif kthread is created, but before the
main IPMI code starts the ssif interface, the ssif kthread will not
be stopped.

So make sure the kthread is stopped on an error condition if it is
running.

Fixes: 259307074bfc ("ipmi: Add SMBus interface driver (SSIF)")
Reported-by: Li Xiao &lt;&lt;252270051@hdu.edu.cn&gt;
Cc: stable@vger.kernel.org
Reviewed-by: Li Xiao &lt;252270051@hdu.edu.cn&gt;
Signed-off-by: Corey Minyard &lt;corey@minyard.net&gt;
</content>
</entry>
<entry>
<title>ipmi:ssif: Remove unnecessary indention</title>
<updated>2026-04-13T12:09:15+00:00</updated>
<author>
<name>Corey Minyard</name>
<email>corey@minyard.net</email>
</author>
<published>2026-04-13T12:09:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=91eb7ec7261254b6875909df767185838598e21e'/>
<id>urn:sha1:91eb7ec7261254b6875909df767185838598e21e</id>
<content type='text'>
A section was in {} that didn't need to be, move the variable
definition to the top and set th eindentino properly.

Signed-off-by: Corey Minyard &lt;corey@minyard.net&gt;
</content>
</entry>
<entry>
<title>ipmi: ssif_bmc: Fix KUnit test link failure when KUNIT=m</title>
<updated>2026-04-07T12:33:23+00:00</updated>
<author>
<name>Jian Zhang</name>
<email>zhangjian.3032@bytedance.com</email>
</author>
<published>2026-04-07T09:46:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=93b5d21e8b5cbdc3e439b94feee9b013e8170905'/>
<id>urn:sha1:93b5d21e8b5cbdc3e439b94feee9b013e8170905</id>
<content type='text'>
Building with CONFIG_KUNIT=m and CONFIG_SSIF_IPMI_BMC_KUNIT_TEST=y
results in link errors such as:

  undefined reference to `kunit_binary_assert_format'
  undefined reference to `__kunit_do_failed_assertion'

This happens because the test code is built-in while the KUnit core
is built as a module, so the required KUnit symbols are not available
at link time.

Fix this by requiring KUNIT to be built-in when enabling
SSIF_IPMI_BMC_KUNIT_TEST.

Signed-off-by: Jian Zhang &lt;zhangjian.3032@bytedance.com&gt;
Reported-by: kernel test robot &lt;lkp@intel.com&gt;
Closes: https://lore.kernel.org/oe-kbuild-all/202604071448.zUBjPYPu-lkp@intel.com/
Message-ID: &lt;20260407094647.356661-1-zhangjian.3032@bytedance.com&gt;
Signed-off-by: Corey Minyard &lt;corey@minyard.net&gt;
</content>
</entry>
<entry>
<title>ipmi: ssif_bmc: add unit test for state machine</title>
<updated>2026-04-03T15:23:42+00:00</updated>
<author>
<name>Jian Zhang</name>
<email>zhangjian.3032@bytedance.com</email>
</author>
<published>2026-04-03T14:39:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=d4464694f2a409fadbe17a70202242ff6b72ee30'/>
<id>urn:sha1:d4464694f2a409fadbe17a70202242ff6b72ee30</id>
<content type='text'>
Add some unit test for state machine when in SSIF_ABORTING state.

Fixes: dd2bc5cc9e25 ("ipmi: ssif_bmc: Add SSIF BMC driver")
Signed-off-by: Jian Zhang &lt;zhangjian.3032@bytedance.com&gt;
Message-ID: &lt;20260403143939.434017-1-zhangjian.3032@bytedance.com&gt;
Signed-off-by: Corey Minyard &lt;corey@minyard.net&gt;
</content>
</entry>
<entry>
<title>ipmi: ssif_bmc: change log level to dbg in irq callback</title>
<updated>2026-04-03T12:50:04+00:00</updated>
<author>
<name>Jian Zhang</name>
<email>zhangjian.3032@bytedance.com</email>
</author>
<published>2026-04-03T09:06:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=c9c99b7b7051eb7121b3224bfce181fb023b0269'/>
<id>urn:sha1:c9c99b7b7051eb7121b3224bfce181fb023b0269</id>
<content type='text'>
Long-running tests indicate that this logging can occasionally disrupt
timing and lead to request/response corruption.

Irq handler need to be executed as fast as possible,
most I2C slave IRQ implementations are byte-level, logging here
can significantly affect transfer behavior and timing. It is recommended
to use dev_dbg() for these messages.

Fixes: dd2bc5cc9e25 ("ipmi: ssif_bmc: Add SSIF BMC driver")
Signed-off-by: Jian Zhang &lt;zhangjian.3032@bytedance.com&gt;
Message-ID: &lt;20260403090603.3988423-4-zhangjian.3032@bytedance.com&gt;
Signed-off-by: Corey Minyard &lt;corey@minyard.net&gt;
</content>
</entry>
<entry>
<title>ipmi: ssif_bmc: fix message desynchronization after truncated response</title>
<updated>2026-04-03T12:49:58+00:00</updated>
<author>
<name>Jian Zhang</name>
<email>zhangjian.3032@bytedance.com</email>
</author>
<published>2026-04-03T09:06:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=1d38e849adb6851ee280aa1a1d687b2181549a66'/>
<id>urn:sha1:1d38e849adb6851ee280aa1a1d687b2181549a66</id>
<content type='text'>
A truncated response, caused by host power-off, or other conditions,
can lead to message desynchronization.

Raw trace data (STOP loss scenario, add state transition comment):

1. T-1: Read response phase (SSIF_RES_SENDING)
8271.955342  WR_RCV [03]                          &lt;- Read polling cmd
8271.955348  RD_REQ [04]  &lt;== SSIF_RES_SENDING    &lt;- start sending response
8271.955436  RD_PRO [b4]
8271.955527  RD_PRO [00]
8271.955618  RD_PRO [c1]
8271.955707  RD_PRO [00]
8271.955814  RD_PRO [ad]  &lt;== SSIF_RES_SENDING     &lt;- last byte
	&lt;- !! STOP lost (truncated response)

2. T: New Write request arrives, BMC still in SSIF_RES_SENDING
8271.967973  WR_REQ []    &lt;== SSIF_RES_SENDING &gt;&gt; SSIF_ABORTING  &lt;- log: unexpected WR_REQ in RES_SENDING
8271.968447  WR_RCV [02]  &lt;== SSIF_ABORTING  &lt;- do nothing
8271.968452  WR_RCV [02]  &lt;== SSIF_ABORTING  &lt;- do nothing
8271.968454  WR_RCV [18]  &lt;== SSIF_ABORTING  &lt;- do nothing
8271.968456  WR_RCV [01]  &lt;== SSIF_ABORTING  &lt;- do nothing
8271.968458  WR_RCV [66]  &lt;== SSIF_ABORTING  &lt;- do nothing
8271.978714  STOP []      &lt;== SSIF_ABORTING &gt;&gt; SSIF_READY  &lt;- log: unexpected SLAVE STOP in state=SSIF_ABORTING

3. T+1: Next Read polling, treated as a fresh transaction
8271.979125  WR_REQ []    &lt;== SSIF_READY &gt;&gt; SSIF_START
8271.979326  WR_RCV [03]  &lt;== SSIF_START &gt;&gt; SSIF_SMBUS_CMD        &lt;- smbus_cmd=0x03
8271.979331  RD_REQ [04]  &lt;== SSIF_RES_SENDING      &lt;- sending response
8271.979427  RD_PRO [b4]                            &lt;- !! this is T's stale response -&gt; desynchronization

When in SSIF_ABORTING state, a newly arrived command should still be
handled to avoid dropping the request or causing message
desynchronization.

Fixes: dd2bc5cc9e25 ("ipmi: ssif_bmc: Add SSIF BMC driver")
Signed-off-by: Jian Zhang &lt;zhangjian.3032@bytedance.com&gt;
Message-ID: &lt;20260403090603.3988423-3-zhangjian.3032@bytedance.com&gt;
Signed-off-by: Corey Minyard &lt;corey@minyard.net&gt;
</content>
</entry>
<entry>
<title>ipmi: ssif_bmc: fix missing check for copy_to_user() partial failure</title>
<updated>2026-04-03T12:49:53+00:00</updated>
<author>
<name>Jian Zhang</name>
<email>zhangjian.3032@bytedance.com</email>
</author>
<published>2026-04-03T09:05:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=ea641be7a4faee4351f9c5ed6b188e1bbf5586a6'/>
<id>urn:sha1:ea641be7a4faee4351f9c5ed6b188e1bbf5586a6</id>
<content type='text'>
copy_to_user() returns the number of bytes that could not be copied,
with a non-zero value indicating a partial or complete failure. The
current code only checks for negative return values and treats all
non-negative results as success.

Treating any positive return value from copy_to_user() as
an error and returning -EFAULT.

Fixes: dd2bc5cc9e25 ("ipmi: ssif_bmc: Add SSIF BMC driver")
Signed-off-by: Jian Zhang &lt;zhangjian.3032@bytedance.com&gt;
Message-ID: &lt;20260403090603.3988423-2-zhangjian.3032@bytedance.com&gt;
Signed-off-by: Corey Minyard &lt;corey@minyard.net&gt;
</content>
</entry>
<entry>
<title>ipmi: ssif_bmc: cancel response timer on remove</title>
<updated>2026-04-03T12:49:45+00:00</updated>
<author>
<name>Jian Zhang</name>
<email>zhangjian.3032@bytedance.com</email>
</author>
<published>2026-04-03T09:05:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=7fc3e2546cf3fa9a28a2acc92a512c779a8e5038'/>
<id>urn:sha1:7fc3e2546cf3fa9a28a2acc92a512c779a8e5038</id>
<content type='text'>
The response timer can stay armed across device teardown. If it fires after
remove, the callback dereferences the SSIF context and the i2c client after
teardown has started.

Cancel the timer in remove so the callback cannot run after the device is
unregistered.

Signed-off-by: Jian Zhang &lt;zhangjian.3032@bytedance.com&gt;
Message-ID: &lt;20260403090603.3988423-1-zhangjian.3032@bytedance.com&gt;
Signed-off-by: Corey Minyard &lt;corey@minyard.net&gt;
</content>
</entry>
<entry>
<title>ipmi: Replace use of system_wq with system_percpu_wq</title>
<updated>2026-03-05T16:53:20+00:00</updated>
<author>
<name>Marco Crivellari</name>
<email>marco.crivellari@suse.com</email>
</author>
<published>2025-12-24T16:13:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=122d16da1313f1746a4cdd31a620bbb141be7060'/>
<id>urn:sha1:122d16da1313f1746a4cdd31a620bbb141be7060</id>
<content type='text'>
This patch continues the effort to refactor workqueue APIs, which has begun
with the changes introducing new workqueues and a new alloc_workqueue flag:

   commit 128ea9f6ccfb ("workqueue: Add system_percpu_wq and system_dfl_wq")
   commit 930c2ea566af ("workqueue: Add new WQ_PERCPU flag")

The point of the refactoring is to eventually alter the default behavior of
workqueues to become unbound by default so that their workload placement is
optimized by the scheduler.

Before that to happen after a careful review and conversion of each individual
case, workqueue users must be converted to the better named new workqueues with
no intended behaviour changes:

   system_wq -&gt; system_percpu_wq
   system_unbound_wq -&gt; system_dfl_wq

This way the old obsolete workqueues (system_wq, system_unbound_wq) can be
removed in the future.

Suggested-by: Tejun Heo &lt;tj@kernel.org&gt;
Signed-off-by: Marco Crivellari &lt;marco.crivellari@suse.com&gt;
Message-ID: &lt;20251224161301.135382-1-marco.crivellari@suse.com&gt;
Signed-off-by: Corey Minyard &lt;corey@minyard.net&gt;
</content>
</entry>
<entry>
<title>Merge tag 'for-linus-7.0-1' of https://github.com/cminyard/linux-ipmi</title>
<updated>2026-02-26T22:34:21+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2026-02-26T22:34:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=c45be7c420659391530fe3508191083bc0bbfe15'/>
<id>urn:sha1:c45be7c420659391530fe3508191083bc0bbfe15</id>
<content type='text'>
Pull IPMI driver fixes from Corey Minyard:
 "This mostly revolves around getting the driver to behave when the IPMI
  device misbehaves. Past attempts have not worked very well because I
  didn't have hardware I could make do this, and AI was fairly useless
  for help on this.

  So I modified qemu and my test suite so I could reproduce a
  misbehaving IPMI device, and with that I was able to fix the issues"

* tag 'for-linus-7.0-1' of https://github.com/cminyard/linux-ipmi:
  ipmi:si: Fix check for a misbehaving BMC
  ipmi:msghandler: Handle error returns from the SMI sender
  ipmi:si: Don't block module unload if the BMC is messed up
  ipmi:si: Use a long timeout when the BMC is misbehaving
  ipmi:si: Handle waiting messages when BMC failure detected
  ipmi:ls2k: Make ipmi_ls2k_platform_driver static
  ipmi: ipmb: initialise event handler read bytes
  ipmi: Consolidate the run to completion checking for xmit msgs lock
  ipmi: Fix use-after-free and list corruption on sender error
</content>
</entry>
</feed>
