Re: [PATCH net-next v21 01/13] virtio_pci: Remove supported_cap size build assert
"Michael S. Tsirkin" <[email protected]> Mon, 3 Aug 2026 11:59:12 -0400
| Newsgroups | dev.linux.lists.virtualization,org.kernel.vger.netdev |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> > > 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. > Signed-off-by: Daniel Jurgens <[email protected]> > Reviewed-by: Parav Pandit <[email protected]> > Reviewed-by: Xuan Zhuo <[email protected]> > Signed-off-by: Shahar Shitrit <[email protected]> > --- > 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