On Mon, Jun 08, 2020 at 11:32:31AM +0800, Jason Wang wrote: > > On 2020/6/7 下午9:51, Michael S. Tsirkin wrote: > > On Fri, Jun 05, 2020 at 04:54:17PM +0800, Jason Wang wrote: > > > On 2020/6/2 下午3:08, Jason Wang wrote: > > > > > > +static const struct pci_device_id vp_vdpa_id_table[] = { > > > > > > + { PCI_DEVICE(PCI_VENDOR_ID_REDHAT_QUMRANET, PCI_ANY_ID) }, > > > > > > + { 0 } > > > > > > +}; > > > > > This looks like it'll create a mess with either virtio pci > > > > > or vdpa being loaded at random. Maybe just don't specify > > > > > any IDs for now. Down the road we could get a > > > > > distinct vendor ID or a range of device IDs for this. > > > > > > > > Right, will do. > > > > > > > > Thanks > > > > > > Rethink about this. If we don't specify any ID, the binding won't work. > > We can bind manually. It's not really for production anyway, so > > not a big deal imho. > > > I think you mean doing it via "new_id", right. I really meant driver_override. This is what people have been using with pci-stub for years now. > > > > > > How about using a dedicated subsystem vendor id for this? > > > > > > Thanks > > If virtio vendor id is used then standard driver is expected > > to bind, right? Maybe use a dedicated vendor id? > > > I meant something like: > > static const struct pci_device_id vp_vdpa_id_table[] = { > { PCI_DEVICE_SUB(PCI_VENDOR_ID_REDHAT_QUMRANET, PCI_ANY_ID, > VP_TEST_VENDOR_ID, VP_TEST_DEVICE_ID) }, > { 0 } > }; > > Thanks > Then regular virtio will still bind to it. It has drivers/virtio/virtio_pci_common.c: { PCI_DEVICE(PCI_VENDOR_ID_REDHAT_QUMRANET, PCI_ANY_ID) }, -- MST