"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.
And anyway, we don't want the non-legacy implementers to have to read
the legacy section.
Cheers,
Rusty.