On Mon, Jan 13, 2014 at 11:13:07AM +0100, Gerd Hoffmann wrote: > On Mi, 2014-01-08 at 17:11 +0100, Paolo Bonzini wrote: > > Il 08/01/2014 16:07, Yan Vugenfirer ha scritto: > > >>> > > >>> +%QEMU-PCI_SERIAL_1_PORT%=ComPort_inst1, > > >>> PCI\VEN_1B36&DEV_0002&SUBSYS_11001AF4&REV_01 > > >>> +%QEMU-PCI_SERIAL_2_PORT%=ComPort_inst2, > > >>> PCI\VEN_1B36&DEV_0003&SUBSYS_11001AF4&REV_01 > > >>> +%QEMU-PCI_SERIAL_4_PORT%=ComPort_inst4, > > >>> PCI\VEN_1B36&DEV_0004&SUBSYS_11001AF4&REV_01 > > >> > > >> I think checking the subsystem is not necessary (and I think downstreams > > >> could legitimately change it). Can you check CC and REV but not SUBSYS? > > > > > > PNP ID can be reduced to vendor and device ID only, for example: > > > PCI\VEN_1B36&DEV_0002 . But in this case we cannot check revision. > > > > Gerd, Michael, what do you think is better? Not check revision, or > > enforcing subsystem? > > No need to check the revision. There is only one, I doubt this will > ever change, and should we do a rev2 virtual hardware it is supposed to > be backward-compatible to rev1 (otherwise we should hand out a new pci > id to the device). > > [ drivers which depend on few features of the hypothetical rev2 hardware > and don't work with rev1 would need a revision check ] > > cheers, > Gerd >
Well linux checks revision: if (pci_dev->revision != VIRTIO_PCI_ABI_VERSION) { printk(KERN_ERR "virtio_pci: expected ABI version %d, got %d\n", VIRTIO_PCI_ABI_VERSION, pci_dev->revision); return -ENODEV; } so it seems better to be consistent. in any case, we must check subsystem ids, the spec is very explicit on this point. -- MST