OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

virtio message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: Re: [virtio-dev] [PATCH] transitional issues: add new IDs for all devices

"Michael S. Tsirkin" <mst@redhat.com> writes:
> On Tue, Sep 24, 2013 at 09:10:09PM +0930, Rusty Russell wrote:
>> "Michael S. Tsirkin" <mst@redhat.com> 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.
>> I don't think this actually works.
> Hmm what doesn't work, exactly?
>> If you offer a non-transitional device to a legacy driver, it will
>> fail anyway (device doesn't work due to missing feature 32).
> How does it fail? Legacy drivers don't give devices any chance
> to fail gracefully.

>> There's not much difference between that and it not finding the device.
> Imagine a non transitional device.
> It would want to use offset 0 in BAR0 for something else not config.
> When legacy driver attempts to access it, it can cause
> all kind of mischief.

As per call, I think we should check that the existing Windows drivers
fail if BAR0 does not exist, and then make that a recommendation for
PCI, eg:

On a platform where legacy devices can exist, devices should not offer
BAR0 at all.


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]