[v2] vdpa/ifc: Match ANY subsystem IDs for modern virtio devices
Checks
Commit Message
Fixing the match table for vdpa/ifcvf driver because as per the Virtio
device specification, for modern virtio devices, drivers MAY match any
PCI Subsystem Vendor ID and any PCI Subsystem Device ID value.
Fixes: a60b747d0ad ("vdpa/ifc: support virtio block device")
Fixes: 5c806b94785 ("vdpa/ifc: add PCI ID for legacy network device")
Cc: stable@dpdk.org
Signed-off-by: Abhishek Maheshwari <abhishek.maheshwari@intel.com>
---
drivers/vdpa/ifc/ifcvf_vdpa.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
Comments
Hi Abhishek,
Please see comments inline.
BRs,
Xiao
> -----Original Message-----
> From: Maheshwari, Abhishek <abhishek.maheshwari@intel.com>
> Sent: Tuesday, December 6, 2022 8:55 PM
> To: Wang, Xiao W <xiao.w.wang@intel.com>
> Cc: dev@dpdk.org; stable@dpdk.org; Xia, Chenbo <chenbo.xia@intel.com>;
> Mandal, Purna Chandra <purna.chandra.mandal@intel.com>; Maheshwari,
> Abhishek <abhishek.maheshwari@intel.com>
> Subject: [PATCH v2] vdpa/ifc: Match ANY subsystem IDs for modern virtio
> devices
>
> Fixing the match table for vdpa/ifcvf driver because as per the Virtio
> device specification, for modern virtio devices, drivers MAY match any
> PCI Subsystem Vendor ID and any PCI Subsystem Device ID value.
Here the "drivers" refers to virtio driver, not vdpa driver.
With below change, this vdpa/ifc driver would hit the standard virtio device which can't 100% match this driver.
>
> Fixes: a60b747d0ad ("vdpa/ifc: support virtio block device")
> Fixes: 5c806b94785 ("vdpa/ifc: add PCI ID for legacy network device")
> Cc: stable@dpdk.org
>
> Signed-off-by: Abhishek Maheshwari <abhishek.maheshwari@intel.com>
> ---
> drivers/vdpa/ifc/ifcvf_vdpa.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/vdpa/ifc/ifcvf_vdpa.c b/drivers/vdpa/ifc/ifcvf_vdpa.c
> index 49d68ad1b1..214d6e1f60 100644
> --- a/drivers/vdpa/ifc/ifcvf_vdpa.c
> +++ b/drivers/vdpa/ifc/ifcvf_vdpa.c
> @@ -1824,8 +1824,8 @@ static const struct rte_pci_id pci_id_ifcvf_map[] = {
> { .class_id = RTE_CLASS_ANY_ID,
> .vendor_id = IFCVF_VENDOR_ID,
> .device_id = IFCVF_NET_MODERN_DEVICE_ID,
> - .subsystem_vendor_id = IFCVF_SUBSYS_VENDOR_ID,
> - .subsystem_device_id = IFCVF_SUBSYS_DEVICE_ID,
> + .subsystem_vendor_id = RTE_PCI_ANY_ID,
> + .subsystem_device_id = RTE_PCI_ANY_ID,
> },
>
> { .class_id = RTE_CLASS_ANY_ID,
> @@ -1845,8 +1845,8 @@ static const struct rte_pci_id pci_id_ifcvf_map[] = {
> { .class_id = RTE_CLASS_ANY_ID,
> .vendor_id = IFCVF_VENDOR_ID,
> .device_id = IFCVF_BLK_MODERN_DEVICE_ID,
> - .subsystem_vendor_id = IFCVF_SUBSYS_VENDOR_ID,
> - .subsystem_device_id = IFCVF_SUBSYS_BLK_DEVICE_ID,
> + .subsystem_vendor_id = RTE_PCI_ANY_ID,
> + .subsystem_device_id = RTE_PCI_ANY_ID,
> },
>
> { .vendor_id = 0, /* sentinel */
> --
> 2.31.1
Hi Abhishek,
I agree with Xiao.
I think it will be better you just add subvendor and subdevice you want to be take care of by this vdpa driver.
> -----Original Message-----
> From: Wang, Xiao W <xiao.w.wang@intel.com>
> Sent: Thursday, December 8, 2022 9:09 PM
> To: Maheshwari, Abhishek <Abhishek.Maheshwari@intel.com>
> Cc: dev@dpdk.org; stable@dpdk.org; Xia, Chenbo <Chenbo.Xia@intel.com>;
> Mandal, Purna Chandra <Purna.Chandra.Mandal@intel.com>; Pei, Andy
> <andy.pei@intel.com>
> Subject: RE: [PATCH v2] vdpa/ifc: Match ANY subsystem IDs for modern virtio
> devices
>
> Hi Abhishek,
>
> Please see comments inline.
>
> BRs,
> Xiao
>
> > -----Original Message-----
> > From: Maheshwari, Abhishek <abhishek.maheshwari@intel.com>
> > Sent: Tuesday, December 6, 2022 8:55 PM
> > To: Wang, Xiao W <xiao.w.wang@intel.com>
> > Cc: dev@dpdk.org; stable@dpdk.org; Xia, Chenbo <chenbo.xia@intel.com>;
> > Mandal, Purna Chandra <purna.chandra.mandal@intel.com>; Maheshwari,
> > Abhishek <abhishek.maheshwari@intel.com>
> > Subject: [PATCH v2] vdpa/ifc: Match ANY subsystem IDs for modern
> > virtio devices
> >
> > Fixing the match table for vdpa/ifcvf driver because as per the Virtio
> > device specification, for modern virtio devices, drivers MAY match any
> > PCI Subsystem Vendor ID and any PCI Subsystem Device ID value.
>
> Here the "drivers" refers to virtio driver, not vdpa driver.
> With below change, this vdpa/ifc driver would hit the standard virtio device
> which can't 100% match this driver.
>
> >
> > Fixes: a60b747d0ad ("vdpa/ifc: support virtio block device")
> > Fixes: 5c806b94785 ("vdpa/ifc: add PCI ID for legacy network device")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Abhishek Maheshwari <abhishek.maheshwari@intel.com>
> > ---
> > drivers/vdpa/ifc/ifcvf_vdpa.c | 8 ++++----
> > 1 file changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/vdpa/ifc/ifcvf_vdpa.c
> > b/drivers/vdpa/ifc/ifcvf_vdpa.c index 49d68ad1b1..214d6e1f60 100644
> > --- a/drivers/vdpa/ifc/ifcvf_vdpa.c
> > +++ b/drivers/vdpa/ifc/ifcvf_vdpa.c
> > @@ -1824,8 +1824,8 @@ static const struct rte_pci_id pci_id_ifcvf_map[] = {
> > { .class_id = RTE_CLASS_ANY_ID,
> > .vendor_id = IFCVF_VENDOR_ID,
> > .device_id = IFCVF_NET_MODERN_DEVICE_ID,
> > - .subsystem_vendor_id = IFCVF_SUBSYS_VENDOR_ID,
> > - .subsystem_device_id = IFCVF_SUBSYS_DEVICE_ID,
> > + .subsystem_vendor_id = RTE_PCI_ANY_ID,
> > + .subsystem_device_id = RTE_PCI_ANY_ID,
> > },
> >
> > { .class_id = RTE_CLASS_ANY_ID,
> > @@ -1845,8 +1845,8 @@ static const struct rte_pci_id pci_id_ifcvf_map[] = {
> > { .class_id = RTE_CLASS_ANY_ID,
> > .vendor_id = IFCVF_VENDOR_ID,
> > .device_id = IFCVF_BLK_MODERN_DEVICE_ID,
> > - .subsystem_vendor_id = IFCVF_SUBSYS_VENDOR_ID,
> > - .subsystem_device_id = IFCVF_SUBSYS_BLK_DEVICE_ID,
> > + .subsystem_vendor_id = RTE_PCI_ANY_ID,
> > + .subsystem_device_id = RTE_PCI_ANY_ID,
> > },
> >
> > { .vendor_id = 0, /* sentinel */
> > --
> > 2.31.1
@@ -1824,8 +1824,8 @@ static const struct rte_pci_id pci_id_ifcvf_map[] = {
{ .class_id = RTE_CLASS_ANY_ID,
.vendor_id = IFCVF_VENDOR_ID,
.device_id = IFCVF_NET_MODERN_DEVICE_ID,
- .subsystem_vendor_id = IFCVF_SUBSYS_VENDOR_ID,
- .subsystem_device_id = IFCVF_SUBSYS_DEVICE_ID,
+ .subsystem_vendor_id = RTE_PCI_ANY_ID,
+ .subsystem_device_id = RTE_PCI_ANY_ID,
},
{ .class_id = RTE_CLASS_ANY_ID,
@@ -1845,8 +1845,8 @@ static const struct rte_pci_id pci_id_ifcvf_map[] = {
{ .class_id = RTE_CLASS_ANY_ID,
.vendor_id = IFCVF_VENDOR_ID,
.device_id = IFCVF_BLK_MODERN_DEVICE_ID,
- .subsystem_vendor_id = IFCVF_SUBSYS_VENDOR_ID,
- .subsystem_device_id = IFCVF_SUBSYS_BLK_DEVICE_ID,
+ .subsystem_vendor_id = RTE_PCI_ANY_ID,
+ .subsystem_device_id = RTE_PCI_ANY_ID,
},
{ .vendor_id = 0, /* sentinel */