]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
virtio-pci: thinko fix
authorMichael S. Tsirkin <mst@redhat.com>
Mon, 11 Jan 2010 15:57:41 +0000 (17:57 +0200)
committerAnthony Liguori <aliguori@us.ibm.com>
Tue, 12 Jan 2010 19:30:08 +0000 (13:30 -0600)
Since patch ed757e140c0ada220f213036e4497315d24ca8bct, virtio will
sometimes clear all status registers on bus master disable, which loses
information such as VIRTIO_CONFIG_S_FAILED bit.  This is a result of
a patch being misapplied: code uses !  instead of ~ for bit
operations as in Yan's original patch.  This obviously does not make
sense.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
(cherry picked from commit 49e75cf38848e6da70c0e9ddb4d994e9d71a9625)

hw/virtio-pci.c

index 62b46bd48495b47fa4ca9f55318f9453a6e8082c..3594152267fda3c96b68edd839d40255e1962d43 100644 (file)
@@ -372,7 +372,7 @@ static void virtio_write_config(PCIDevice *pci_dev, uint32_t address,
 
     if (PCI_COMMAND == address) {
         if (!(val & PCI_COMMAND_MASTER)) {
-            proxy->vdev->status &= !VIRTIO_CONFIG_S_DRIVER_OK;
+            proxy->vdev->status &= ~VIRTIO_CONFIG_S_DRIVER_OK;
         }
     }