On (Wed) Mar 03 2010 [19:16:13], Michael S. Tsirkin wrote: > vhost net backend needs to be notified when > frontend status changes. Add a callback, > similar to set_features. > > Signed-off-by: Michael S. Tsirkin <m...@redhat.com> > --- > hw/s390-virtio-bus.c | 2 +- > hw/syborg_virtio.c | 2 +- > hw/virtio-pci.c | 5 +++-- > hw/virtio.h | 9 +++++++++ > 4 files changed, 14 insertions(+), 4 deletions(-) > > diff --git a/hw/s390-virtio-bus.c b/hw/s390-virtio-bus.c > index fa0a74f..6f93d67 100644 > --- a/hw/s390-virtio-bus.c > +++ b/hw/s390-virtio-bus.c > @@ -242,7 +242,7 @@ void s390_virtio_device_update_status(VirtIOS390Device > *dev) > VirtIODevice *vdev = dev->vdev; > uint32_t features; > > - vdev->status = ldub_phys(dev->dev_offs + VIRTIO_DEV_OFFS_STATUS); > + virtio_set_status(vdev, ldub_phys(dev->dev_offs + > VIRTIO_DEV_OFFS_STATUS)); > > /* Update guest supported feature bitmap */ > > diff --git a/hw/syborg_virtio.c b/hw/syborg_virtio.c > index 65239a0..c7b1162 100644 > --- a/hw/syborg_virtio.c > +++ b/hw/syborg_virtio.c > @@ -149,7 +149,7 @@ static void syborg_virtio_writel(void *opaque, > target_phys_addr_t offset, > virtio_queue_notify(vdev, value); > break; > case SYBORG_VIRTIO_STATUS: > - vdev->status = value & 0xFF; > + virtio_set_status(vdev, value);
Dropping the '& 0xFF'? Should be OK, but in the next hunk it's retained: > if (vdev->status == 0) > virtio_reset(vdev); > break; > diff --git a/hw/virtio-pci.c b/hw/virtio-pci.c > index bcd40f7..fd9759a 100644 > --- a/hw/virtio-pci.c > +++ b/hw/virtio-pci.c > @@ -206,7 +206,7 @@ static void virtio_ioport_write(void *opaque, uint32_t > addr, uint32_t val) > virtio_queue_notify(vdev, val); > break; > case VIRTIO_PCI_STATUS: > - vdev->status = val & 0xFF; > + virtio_set_status(vdev, val & 0xFF); > if (vdev->status == 0) { > virtio_reset(proxy->vdev); > msix_unuse_all_vectors(&proxy->pci_dev); Amit