On Fri, Nov 3, 2017 at 8:20 AM, Gerd Hoffmann <kra...@redhat.com> wrote: > >> > > Signed-off-by: Ladi Prosek <lpro...@redhat.com> >> > >> > I wonder whether it's a problem that legacy devices ignore >> > the subsystem ID (that's part of spec). >> >> I don't understand this comment. I don't see anything in the spec >> related to ignoring the subsystem ID. > > Well, the subsystem *device* id is defined to be the virtio device id, > so it is certainly not ignored. The subsystem *vendor* id is not used > as far I know (or ignored in the sense that it doesn't change driver > behavior), allowing to set that makes sense to me.
Yes, thanks, I'm assuming that Michael meant the subsystem device ID. The PCI spec seems to be using "subsystem ID" for the name of this field. I understand that this ID must not change in legacy devices. Interestingly, Windows appears to allow matching drivers only on the full subsystem device ID + subsystem vendor ID 32-bit value, not on only one of the two. PCI\VEN_v(4)&DEV_d(4)&SUBSYS_s(4)n(4)&REV_r(2) This might be a potential problem for a legacy driver that wants to stay vendor-agnostic but I'm pretty sure there would be a reasonable way of working around it. Actually, the device must use a designated device ID (like 0x1000) in addition to the subsystem device ID so this should be a non-issue altogether. > Possibly not only for virtio devices, most pci devices have 1af4:1100 > as subsystem id, other vendors might want set it too for consistency. > > cheers, > Gerd