Re: [PATCH net-next v21 01/13] virtio_pci: Remove supported_cap size build assert
From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2026-08-03 15:59:20
Also in:
virtualization
patch is ok. commit log isnt: supported_cap is not a thing. better subj: remove supported_caps cache and build assert On Mon, Aug 03, 2026 at 05:07:09PM +0300, Shahar Shitrit wrote:
From: Daniel Jurgens <redacted> The cap ID list can be more than 64 bits.
what does "can be" mean? I think what u mean following patches make ....
Remove the build assert.
Also remove caching of the supported caps, it wasn't used.
it's not "also". in fact we remove supported_caps and then the rest of the code handles data->supported_caps of any size, transparently.
quoted hunk ↗ jump to hunk
Signed-off-by: Daniel Jurgens <redacted> Reviewed-by: Parav Pandit <redacted> Reviewed-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com> Signed-off-by: Shahar Shitrit <redacted> --- drivers/virtio/virtio_pci_common.h | 1 - drivers/virtio/virtio_pci_modern.c | 10 +++------- 2 files changed, 3 insertions(+), 8 deletions(-)diff --git a/drivers/virtio/virtio_pci_common.h b/drivers/virtio/virtio_pci_common.h index 8cd01de27baf..fc26e035e7a6 100644 --- a/drivers/virtio/virtio_pci_common.h +++ b/drivers/virtio/virtio_pci_common.h@@ -48,7 +48,6 @@ struct virtio_pci_admin_vq { /* Protects virtqueue access. */ spinlock_t lock; u64 supported_cmds; - u64 supported_caps; u8 max_dev_parts_objects; struct ida dev_parts_ida; /* Name of the admin queue: avq.$vq_index. */diff --git a/drivers/virtio/virtio_pci_modern.c b/drivers/virtio/virtio_pci_modern.c index 6d8ae2a6a8ca..ef4a64eb9982 100644 --- a/drivers/virtio/virtio_pci_modern.c +++ b/drivers/virtio/virtio_pci_modern.c@@ -304,10 +304,10 @@ virtio_pci_admin_cmd_dev_parts_objects_enable(struct virtio_device *virtio_dev) static void virtio_pci_admin_cmd_cap_init(struct virtio_device *virtio_dev) { - struct virtio_pci_device *vp_dev = to_vp_device(virtio_dev); struct virtio_admin_cmd_query_cap_id_result *data; struct virtio_admin_cmd cmd = {}; struct scatterlist result_sg; + u64 caps; int ret; data = kzalloc_obj(*data);@@ -323,12 +323,8 @@ static void virtio_pci_admin_cmd_cap_init(struct virtio_device *virtio_dev) if (ret) goto end; - /* Max number of caps fits into a single u64 */ - BUILD_BUG_ON(sizeof(data->supported_caps) > sizeof(u64)); - - vp_dev->admin_vq.supported_caps = le64_to_cpu(data->supported_caps[0]); - - if (!(vp_dev->admin_vq.supported_caps & (1 << VIRTIO_DEV_PARTS_CAP))) + caps = le64_to_cpu(data->supported_caps[0]); + if (!(caps & BIT_ULL(VIRTIO_DEV_PARTS_CAP))) goto end; virtio_pci_admin_cmd_dev_parts_objects_enable(virtio_dev);-- 2.49.0