Jason Wang
2021-Mar-11 03:23 UTC
[PATCH V3 1/6] vDPA/ifcvf: get_vendor_id returns a device specific vendor id
On 2021/3/10 5:00 ??, Zhu Lingshan wrote:> In this commit, ifcvf_get_vendor_id() will return > a device specific vendor id of the probed pci device > than a hard code. > > Signed-off-by: Zhu Lingshan <lingshan.zhu at intel.com> > --- > drivers/vdpa/ifcvf/ifcvf_main.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c b/drivers/vdpa/ifcvf/ifcvf_main.c > index fa1af301cf55..e501ee07de17 100644 > --- a/drivers/vdpa/ifcvf/ifcvf_main.c > +++ b/drivers/vdpa/ifcvf/ifcvf_main.c > @@ -324,7 +324,10 @@ static u32 ifcvf_vdpa_get_device_id(struct vdpa_device *vdpa_dev) > > static u32 ifcvf_vdpa_get_vendor_id(struct vdpa_device *vdpa_dev) > { > - return IFCVF_SUBSYS_VENDOR_ID; > + struct ifcvf_adapter *adapter = vdpa_to_adapter(vdpa_dev); > + struct pci_dev *pdev = adapter->pdev; > + > + return pdev->subsystem_vendor; > }While at this, I wonder if we can do something similar in get_device_id() if it could be simple deduced from some simple math from the pci device id? Thanks> > static u32 ifcvf_vdpa_get_vq_align(struct vdpa_device *vdpa_dev)
Zhu Lingshan
2021-Mar-11 04:21 UTC
[PATCH V3 1/6] vDPA/ifcvf: get_vendor_id returns a device specific vendor id
On 3/11/2021 11:23 AM, Jason Wang wrote:> > On 2021/3/10 5:00 ??, Zhu Lingshan wrote: >> In this commit, ifcvf_get_vendor_id() will return >> a device specific vendor id of the probed pci device >> than a hard code. >> >> Signed-off-by: Zhu Lingshan <lingshan.zhu at intel.com> >> --- >> ? drivers/vdpa/ifcvf/ifcvf_main.c | 5 ++++- >> ? 1 file changed, 4 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/vdpa/ifcvf/ifcvf_main.c >> b/drivers/vdpa/ifcvf/ifcvf_main.c >> index fa1af301cf55..e501ee07de17 100644 >> --- a/drivers/vdpa/ifcvf/ifcvf_main.c >> +++ b/drivers/vdpa/ifcvf/ifcvf_main.c >> @@ -324,7 +324,10 @@ static u32 ifcvf_vdpa_get_device_id(struct >> vdpa_device *vdpa_dev) >> ? ? static u32 ifcvf_vdpa_get_vendor_id(struct vdpa_device *vdpa_dev) >> ? { >> -??? return IFCVF_SUBSYS_VENDOR_ID; >> +??? struct ifcvf_adapter *adapter = vdpa_to_adapter(vdpa_dev); >> +??? struct pci_dev *pdev = adapter->pdev; >> + >> +??? return pdev->subsystem_vendor; >> ? } > > > While at this, I wonder if we can do something similar in > get_device_id() if it could be simple deduced from some simple math > from the pci device id? > > ThanksHi Jason, IMHO, this implementation is just some memory read ops, I think other implementations may not save many cpu cycles, an if cost at least three cpu cycles. Thanks!> > >> ? ? static u32 ifcvf_vdpa_get_vq_align(struct vdpa_device *vdpa_dev) >