Subject: Re: [virtio-dev] [PATCH] transitional issues: add new IDs for all devices
On Tue, Sep 24, 2013 at 09:10:09PM +0930, Rusty Russell wrote: > "Michael S. Tsirkin" <email@example.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. > Or are you anticipating guests with both legacy and transitional > drivers? > > Cheers, > Rusty. Sure, you can load any number of drivers in any windows OS.