<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/git/stable/linux-stable.git/drivers/vdpa, branch linux-rolling-stable</title>
<subtitle>Linux kernel stable tree</subtitle>
<id>https://git.landau.one/pub/scm/linux/kernel/git/stable/linux-stable.git/atom?h=linux-rolling-stable</id>
<link rel='self' href='https://git.landau.one/pub/scm/linux/kernel/git/stable/linux-stable.git/atom?h=linux-rolling-stable'/>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/stable/linux-stable.git/'/>
<updated>2026-09-14T11:40:58+00:00</updated>
<entry>
<title>vdpa/mlx5: fix wrong list iterated in add_direct_chain error path</title>
<updated>2026-09-14T11:40:58+00:00</updated>
<author>
<name>Li RongQing</name>
<email>lirongqing@baidu.com</email>
</author>
<published>2026-07-01T11:36:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=c678d04ac9e5a64c2559c43bce273e845fbd09eb'/>
<id>urn:sha1:c678d04ac9e5a64c2559c43bce273e845fbd09eb</id>
<content type='text'>
[ Upstream commit 23ae56d9e74c122f95cae71ae3b9fc259fb88446 ]

In add_direct_chain(), newly allocated direct MR entries are added to
the local list 'tmp', which is spliced into mr-&gt;head only on success.
On the error path, the cleanup loop was incorrectly iterating over
mr-&gt;head instead of tmp.

Fix by iterating over 'tmp' in the err_alloc cleanup path.

Fixes: 94abbccdf291 ("vdpa/mlx5: Add shared memory registration code")
Signed-off-by: Li RongQing &lt;lirongqing@baidu.com&gt;
Acked-by: Eugenio Pérez &lt;eperezma@redhat.com&gt;
Reviewed-by: Dragos Tatulea &lt;dtatulea@nvidia.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Message-ID: &lt;20260701113608.1972-1-lirongqing@baidu.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>vdpa_sim: fix cleanup after worker creation failure</title>
<updated>2026-09-14T11:40:57+00:00</updated>
<author>
<name>Linfeng Sun </name>
<email>linfeng.sun.dev@gamil.com</email>
</author>
<published>2026-06-20T10:09:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=ca6f3fa599cb764518df595368b743f856fdb516'/>
<id>urn:sha1:ca6f3fa599cb764518df595368b743f856fdb516</id>
<content type='text'>
[ Upstream commit bd670e5dfd2b01fd9692f61fa1456434c54026a4 ]

vdpasim_create() leaves vdpasim-&gt;worker as an ERR_PTR when
kthread_run_worker() fails. The error path then drops the device
reference, which releases the partially initialized simulator.

vdpasim_free() unconditionally passes the worker pointer to
kthread_destroy_worker(), so the ERR_PTR is dereferenced and can trigger
a general protection fault.

Store the worker error, clear the pointer, and only clean up the worker
when it was successfully initialized. Also make the release path tolerate
partially initialized objects by guarding virtqueue and IOTLB cleanup,
since the same release path can be reached from other initialization
failures.

I found this bug myself, though the patch was written with AI assistance.

Fixes: 76acfa7bc54f ("vdpa_sim: use kthread worker")
Assisted-by: OpenAI-Codex:GPT-5
Reviewed-by: Eugenio Pérez &lt;eperezma@redhat.com&gt;
Signed-off-by: Linfeng Sun &lt;linfeng.sun.dev@gamil.com&gt;
Message-ID: &lt;20260620100959.2070316-1-slf@hdu.edu.cn&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>vdpa/mlx5: Fix buffer length in create_direct_keys()</title>
<updated>2026-08-03T19:21:54+00:00</updated>
<author>
<name>Christian Borntraeger</name>
<email>borntraeger@linux.ibm.com</email>
</author>
<published>2026-07-06T14:15:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=727e1f569855df83579edbd73dcb4a0723543a12'/>
<id>urn:sha1:727e1f569855df83579edbd73dcb4a0723543a12</id>
<content type='text'>
We have seen in our CI the following KASAN message:
BUG: KASAN: slab-out-of-bounds in cmd_exec+0x550/0xca0 [mlx5_core]
Read of size 272 at addr 0000000176795020 by task qemu-system-s39/82764
[...]
[&lt;000011388ab3a7a0&gt;] cmd_exec+0x550/0xca0 [mlx5_core]
[&lt;000011388ab3b61c&gt;] mlx5_cmd_exec_cb+0x25c/0x4f0 [mlx5_core]
[&lt;000011388b21e82e&gt;] mlx5_vdpa_exec_async_cmds+0x22e/0x5e0 [mlx5_vdpa]
[&lt;000011388b21fd44&gt;] create_direct_keys+0x954/0xef0 [mlx5_vdpa]
[...]
The buggy address is located 4128 bytes inside of
allocated 4384-byte region [0000000176794000, 0000000176795120)

So in essence we read 16 bytes beyond 4384-byte allocation.
create_direct_keys calculates the pointer and length for in and out
buffers.
The size calculation for in includes the entire structure
size (out + in + mtt[]) but the pointer passed to cmd_exec points only
to the 'in' field, skipping the 'out' field.

This causes mlx5_copy_to_msg() to read beyond the allocated buffer
by sizeof(out) bytes when copying command data.

Properly calculate the input size to match the pointer and allocation size.

Fixes: 0071b138d44a ("vdpa/mlx5: Create direct MKEYs in parallel")
Signed-off-by: Christian Borntraeger &lt;borntraeger@linux.ibm.com&gt;
Tested-by: Dragos Tatulea &lt;dtatulea@nvidia.com&gt;
Reviewed-by: Dragos Tatulea &lt;dtatulea@nvidia.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Message-ID: &lt;20260706141537.3510294-1-borntraeger@linux.ibm.com&gt;
</content>
</entry>
<entry>
<title>vhost_iotlb: bound map allocation in add_range</title>
<updated>2026-08-03T19:21:54+00:00</updated>
<author>
<name>Linfeng Sun </name>
<email>linfeng.sun.dev@gamil.com</email>
</author>
<published>2026-06-20T13:00:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=1ed35ac7f3fe2b4396bdd29ac3a7f0ebc0829e94'/>
<id>urn:sha1:1ed35ac7f3fe2b4396bdd29ac3a7f0ebc0829e94</id>
<content type='text'>
vhost_iotlb_add_range_ctx() only retires an old entry when the table
has a non-zero limit, has exactly reached that limit and has
VHOST_IOTLB_FLAG_RETIRE set. Non-retiring tables can keep allocating
entries after reaching their configured limit.

Existing vhost devices allocate their IOTLB with max_iotlb_entries from
vhost.c, which defaults to 2048 and is tunable by module parameter. Use
the caller-provided limit at the allocation point instead of adding a
separate default in the common IOTLB helper, and reject non-positive
values in vhost paths that can report an error.

Other vhost IOTLB users should not create zero-limit tables when entries
can be populated from userspace or guest-controlled requests. Add
caller-side max_iotlb_entries parameters for mlx5 vDPA, VDUSE and
vhost-vDPA. Reject non-positive VDUSE and vhost-vDPA values, and require
at least two entries for vdpa_sim and mlx5 vDPA paths that install
full-range mappings, since those mappings are split into two IOTLB
entries.

Handle full-range mappings in the common helper by checking that the
IOTLB can hold both split entries before inserting the first half. This
avoids returning an error after leaving a half mapping behind.

When the table is full, keep the existing retire behavior for retiring
tables and return -ENOSPC for non-retiring tables. Reuse the retired map
node instead of freeing it and allocating a replacement, so a stream of
IOTLB updates cannot keep forcing GFP_ATOMIC allocations after the table
has reached its limit. If a zero-limit IOTLB still reaches the common
helper, treat it as a configuration error and return -EINVAL.

I found this bug myself, though the patch was written with AI assistance.

Fixes: 0bbe30668d89 ("vhost: factor out IOTLB")
Assisted-by: OpenAI-Codex:GPT-5
Signed-off-by: Linfeng Sun &lt;linfeng.sun.dev@gamil.com&gt;
Message-ID: &lt;AMYAtgAiKmgYcSQT5ukl-4qq.3.1781960405943.Hmail.241270009@hdu.edu.cn&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
</content>
</entry>
<entry>
<title>Replace &lt;linux/mod_devicetable.h&gt; by more specific &lt;linux/device-id/*.h&gt; (c files)</title>
<updated>2026-07-03T05:38:17+00:00</updated>
<author>
<name>Uwe Kleine-König (The Capable Hub)</name>
<email>u.kleine-koenig@baylibre.com</email>
</author>
<published>2026-06-30T09:24:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=995832b2cebe6969d1b42635db698803ee31294d'/>
<id>urn:sha1:995832b2cebe6969d1b42635db698803ee31294d</id>
<content type='text'>
Replace the #include of &lt;linux/mod_devicetable.h&gt; by the more specific
&lt;linux/device-id/*.h&gt; where applicable. For most cases the include
can be dropped completely, only a few drivers need one or two headers
added.

Acked-by: Danilo Krummrich &lt;dakr@kernel.org&gt;
Acked-by: Takashi Sakamoto &lt;o-takashi@sakamocchi.jp&gt;
Acked-by: Bjorn Helgaas &lt;bhelgaas@google.com&gt;
Link: https://patch.msgid.link/1a3f2007c5c5dcf555c09a4035ce3ae8ef1b6c49.1782808461.git.u.kleine-koenig@baylibre.com
Signed-off-by: Uwe Kleine-König (The Capable Hub) &lt;u.kleine-koenig@baylibre.com&gt;
</content>
</entry>
<entry>
<title>vdpa/octeon_ep: fix IRQ-to-ring mapping in interrupt handler</title>
<updated>2026-06-10T06:17:00+00:00</updated>
<author>
<name>Srujana Challa</name>
<email>schalla@marvell.com</email>
</author>
<published>2026-02-24T09:52:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=0d21a1d6375a05274291e32c1ab7cd57dbb69513'/>
<id>urn:sha1:0d21a1d6375a05274291e32c1ab7cd57dbb69513</id>
<content type='text'>
Look up the IRQ index in oct_hw-&gt;irqs instead of assuming
irq - irqs[0]. This supports non-contiguous IRQ numbers and
avoids incorrect ring indexing when irqs[0] is not the base.

Fixes: 26f8ce06af64 ("vdpa/octeon_ep: enable support for multiple interrupts per device")
Signed-off-by: Srujana Challa &lt;schalla@marvell.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Message-ID: &lt;20260224095226.1001151-5-schalla@marvell.com&gt;
</content>
</entry>
<entry>
<title>vdpa/octeon_ep: Add vDPA device event handling for firmware notifications</title>
<updated>2026-06-10T06:17:00+00:00</updated>
<author>
<name>Vamsi Attunuru</name>
<email>vattunuru@marvell.com</email>
</author>
<published>2026-02-24T09:52:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=a5786561649a52402090756308d1c57a914e09b3'/>
<id>urn:sha1:a5786561649a52402090756308d1c57a914e09b3</id>
<content type='text'>
Handle vDPA device add and remove events from Octeon firmware. Use
irq 0 for event delivery as device interrupts are multiplexed.

Signed-off-by: Vamsi Attunuru &lt;vattunuru@marvell.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Message-ID: &lt;20260224095226.1001151-4-schalla@marvell.com&gt;
</content>
</entry>
<entry>
<title>vdpa/octeon_ep: Use 4 bytes for mailbox signature</title>
<updated>2026-06-10T06:17:00+00:00</updated>
<author>
<name>Vamsi Attunuru</name>
<email>vattunuru@marvell.com</email>
</author>
<published>2026-02-24T09:52:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=d42eadf7969e2217fceb84317d3fd28a7bdbd96e'/>
<id>urn:sha1:d42eadf7969e2217fceb84317d3fd28a7bdbd96e</id>
<content type='text'>
The upper 4 bytes are reserved by the firmware for
storing meta data. Use only lower 4 bytes to update
the signature details.

Signed-off-by: Vamsi Attunuru &lt;vattunuru@marvell.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Message-ID: &lt;20260224095226.1001151-3-schalla@marvell.com&gt;
</content>
</entry>
<entry>
<title>vdpa/octeon_ep: Fix PF-&gt;VF mailbox data address calculation</title>
<updated>2026-06-10T06:17:00+00:00</updated>
<author>
<name>Srujana Challa</name>
<email>schalla@marvell.com</email>
</author>
<published>2026-02-24T09:52:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=74dc530f4c505d61f0f3620e59fe56c325ae3437'/>
<id>urn:sha1:74dc530f4c505d61f0f3620e59fe56c325ae3437</id>
<content type='text'>
The mailbox address was computed assuming 1 ring per VF. Read the
actual rings-per-VF from OCTEP_EPF_RINFO and use it when calculating
OCTEP_PF_MBOX_DATA offsets, fixing VF initialization when rings
per VF &gt; 1.

Fixes: 8b6c724cdab8 ("virtio: vdpa: vDPA driver for Marvell OCTEON DPU devices")
Signed-off-by: Srujana Challa &lt;schalla@marvell.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Message-ID: &lt;20260224095226.1001151-2-schalla@marvell.com&gt;
</content>
</entry>
<entry>
<title>vdpa/mlx5: Use kvzalloc_flex() for MTT command memory</title>
<updated>2026-06-10T06:17:00+00:00</updated>
<author>
<name>Rosen Penev</name>
<email>rosenp@gmail.com</email>
</author>
<published>2026-05-08T05:18:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.landau.one/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=4d130b63bd08b789f70a9f4a7af33104cc8cebce'/>
<id>urn:sha1:4d130b63bd08b789f70a9f4a7af33104cc8cebce</id>
<content type='text'>
The create mkey command memory embeds the MTT array as a flexible array
member. Use kvzalloc_flex() to allocate it directly instead of open-coding
the struct_size() calculation with kvcalloc().

The MTT allocation still needs to be aligned to MLX5_VDPA_MTT_ALIGN bytes.
Since each MTT entry is __be64, align the entry count directly and avoid
carrying a separate byte length variable.

Assisted-by: Codex:GPT-5.5
Signed-off-by: Rosen Penev &lt;rosenp@gmail.com&gt;
Reviewed-by: Dragos Tatulea &lt;dtatulea@nvidia.com&gt;
Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Message-ID: &lt;20260508051837.1744409-1-rosenp@gmail.com&gt;
</content>
</entry>
</feed>
