qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PULL v3 14/15] virtio-pci: fix migration for pci bus m


From: Nikunj A Dadhania
Subject: Re: [Qemu-devel] [PULL v3 14/15] virtio-pci: fix migration for pci bus master
Date: Fri, 26 Sep 2014 14:49:15 +0530
User-agent: Notmuch/0.17+27~gae47d61 (http://notmuchmail.org) Emacs/24.3.1 (x86_64-redhat-linux-gnu)

Hi Alex/Peter,

The below patch is already been picked in master and ppc-next and has
broken pseries booting from virtio-blk device

Greg Kurz <address@hidden> writes:
> On Tue, 23 Sep 2014 07:26:32 +0300
> "Michael S. Tsirkin" <address@hidden> wrote:
>
>> > 
>> > This commit prevents pseries to boot. SLOF complains with the following 
>> > messages:
>> > 
>> > Trying to load:  from: /address@hidden/address@hidden ... virtioblk_read 
>> > failed! status = 255
>> > virtioblk_read failed! status = 255
>> > virtioblk_read failed! status = 255
>> > ...
>> > 
>> > I'll try to debug some more.
>> > 

>> > > @@ -480,13 +469,18 @@ static void virtio_write_config(PCIDevice 
>> > > *pci_dev, uint32_t address,
>> > >      VirtIOPCIProxy *proxy = DO_UPCAST(VirtIOPCIProxy, pci_dev, pci_dev);
>> > >      VirtIODevice *vdev = virtio_bus_get_device(&proxy->bus);
>> > > 
>> > > +    uint8_t cmd = proxy->pci_dev.config[PCI_COMMAND];
>> > > +
>> > >      pci_default_write_config(pci_dev, address, val, len);
>> > > 
>> > >      if (range_covers_byte(address, len, PCI_COMMAND) &&
>> > >          !(pci_dev->config[PCI_COMMAND] & PCI_COMMAND_MASTER) &&
>> > > -        !(proxy->flags & VIRTIO_PCI_FLAG_BUS_MASTER_BUG)) {
>> > > +        (cmd & PCI_COMMAND_MASTER)) {
>> > > +        /* Bus driver disables bus mastering - make it act
>> > > +         * as a kind of reset to render the device quiescent. */
>> > >          virtio_pci_stop_ioeventfd(proxy);
>> > > -        virtio_set_status(vdev, vdev->status & 
>> > > ~VIRTIO_CONFIG_S_DRIVER_OK);
>> > > +        virtio_reset(vdev);
>> > > +        msix_unuse_all_vectors(&proxy->pci_dev);
>> > >      }
>> > >  }
>> > > 
>> 

Regards
Nikunj




reply via email to

[Prev in Thread] Current Thread [Next in Thread]