Skip to contentSkip to conversation

virtio-pci: thinko fix

PATCH In review Michael S. Tsirkin 2 participants 2 messages Jan 11, 2010

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 virtio-pci: thinko fix

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.

---

 hw/virtio-pci.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
hw/virtio-pci.c +1 -1
index d222ce0..f4f1bc1 100644
@@ -374,7 +374,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;
         }
     }
 
Signature · 1 line
1.6.6.rc1.43.gf55cc
#1 lore raw
Quoted 7 lines · Michael S. Tsirkin

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.

Actually, the original patch used '!'. It didn't carry a Signed-off-by and when it was reposted with a SoB, this was changed to '~'. There was no indication though that the contents of the patch was different.

Moral of the story is, when you make a change to the patch, add a (v2) and state in the commit message what change was made.

Thanks for catching this.

Regards,

Anthony Liguori