Re: [virtio] [PATCH v2] transitional issues: add new IDs for all devices

From
Rusty Russell <>
Date
2013-09-13T01:15:07+00:00
ID
Thread
Re: [virtio] [PATCH v2] transitional issues: add new IDs for all devices
"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.