On Tue, Sep 08, 2009 at 03:40:08AM -0400, john cooper wrote:
> Michael S. Tsirkin wrote:
> > commit bf011293faaa7f87e4de83185931e7411b794128 made virtio-blk-pci not
> > PCI-compliant, since it makes region 0 (which is an i/o region)
> > size > 256, and, since PCI 2.1, i/o regions are limited to 256 bytes size.
> > When the ATA serial number feature is off, which is the default,
> > make the device spec compliant again, by making region 0 smaller.
> I'd hazard this is the cause of the breakage others
> encountered -- even when the driver was initialized
> but unused. For some odd reason I hadn't seen nor
> been able to reproduce the failure.
> The mock-up of an entire ATA IDENTIFY page is really
> overkill for what we're trying to accomplish here,
> namely passing a 20 byte S/N from qemu to the guest.
> However emulating and passing an IDENTIFY page allows
> guest apps to interpret the information via an
> existing interface, with the guest driver doing nothing
> more than transferring the data as opaque. During
> review, other defined fields of the IDENTIFY page were
> speculated to be potentially useful thus the entire
> 512 byte page was passed wholesale. But it is clearly
> more trouble than benefit at this point. I'll rework
> the patch or use an alternate mechanism.
For now, what my patch does is fix the PCI compliance issue for everyone
who uses the default setup (without the serial #). With serial disabled,
we should not reserve any space in region 0 (not even 20 bytes).
So I propose we apply this patch for now, and then your patch only has
to handle the case of serial number enabled. Makes sense? If yes pls