On Fri, Sep 13, 2013 at 10:19:45AM +0930, Rusty Russell wrote:
> "Michael S. Tsirkin" <> writes:
> > non-transitional devices should have been able to simply update
> > revision ID to make sure legacy drivers are not loaded.
> > Unfortunately, mistakes were made:
> > - we didn't stress that drivers must check revision ID,
> > and of course there's no easy way for drivers to
> > test this failure path,
> > so older versions of Windows drivers ignored revision
> > (latest vision matches revision correctly)
> > - CCW lacks revision ID field
> >
> > Both facts mean a non-transitional device would need
> > a separate mechanism to prevent legacy drivers from
> > loading.
> > We aren't running out of device IDs yet, so
> > let's use up some to resolve this.
> >
> > I incremented all IDs by 0x100 intentionally -
> > for the PCI bindings, this should help remind people they can't
> > just stick the Subsystem ID into the low byte of the Device ID.
> >
> > Signed-off-by: Michael S. Tsirkin <>
>
> OK, the only real proble I have with this is that you should remove the
> 0x1, 0x2 from the non-legacy section.
>
> > +Non-transitional devices must use the larger of the IDs.
> > +For example use Device ID=0x101 for a network card.
> > +
> > +Both transitional and non-transitional drivers must match all
> > +IDs for a given device type.
>
> The last one doesn't make sense. Non-transitional drivers should only
> care about 0x10x. That would be achieved by not listing the smaller
> numbers outside the Legacy Interface section.
>
I thought so originally, but this won't work.
Recall that transitional devices have IDs 0x1 0x2 etc.
We definitely want transitional devices to support
non-transitional drivers so non-transitional drivers must support
IDs 0x101 etc.
In other words IDs should not be used to distinguish between
legacy and non-legacy devices - we have a feature bit for that.
They are only a means to distinguish between transitional
and non-transitional devices.
> And anyway, we don't want the non-legacy implementers to have to read
> the legacy section.
>
> Cheers,
> Rusty.
Exactly. So 0x1 is not a legacy ID, that is why it's
not described in a legacy section.
>
> ---------------------------------------------------------------------
> To unsubscribe from this mail list, you must leave the OASIS TC that
> generates this mail. Follow this link to all your TCs in OASIS at:
> https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php