mirror of https://github.com/xemu-project/xemu.git
virtio-mmio: cleanup reset
Make virtio_mmio_soft_reset reset the virtio device, which is performed by both the "soft" and the "hard" reset; and then call virtio_mmio_soft_reset from virtio_mmio_reset to emphasize that the latter is a superset of the former. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
9e43a83041
commit
26cfd67981
|
@ -72,12 +72,12 @@ static void virtio_mmio_soft_reset(VirtIOMMIOProxy *proxy)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (proxy->legacy) {
|
virtio_bus_reset(&proxy->bus);
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < VIRTIO_QUEUE_MAX; i++) {
|
if (!proxy->legacy) {
|
||||||
proxy->vqs[i].enabled = 0;
|
for (i = 0; i < VIRTIO_QUEUE_MAX; i++) {
|
||||||
|
proxy->vqs[i].enabled = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -376,7 +376,7 @@ static void virtio_mmio_write(void *opaque, hwaddr offset, uint64_t value,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (value == 0) {
|
if (value == 0) {
|
||||||
virtio_bus_reset(&vdev->bus);
|
virtio_mmio_soft_reset(proxy);
|
||||||
} else {
|
} else {
|
||||||
virtio_queue_set_addr(vdev, vdev->queue_sel,
|
virtio_queue_set_addr(vdev, vdev->queue_sel,
|
||||||
value << proxy->guest_page_shift);
|
value << proxy->guest_page_shift);
|
||||||
|
@ -432,7 +432,6 @@ static void virtio_mmio_write(void *opaque, hwaddr offset, uint64_t value,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vdev->status == 0) {
|
if (vdev->status == 0) {
|
||||||
virtio_reset(vdev);
|
|
||||||
virtio_mmio_soft_reset(proxy);
|
virtio_mmio_soft_reset(proxy);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -627,7 +626,8 @@ static void virtio_mmio_reset(DeviceState *d)
|
||||||
VirtIOMMIOProxy *proxy = VIRTIO_MMIO(d);
|
VirtIOMMIOProxy *proxy = VIRTIO_MMIO(d);
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
virtio_bus_reset(&proxy->bus);
|
virtio_mmio_soft_reset(proxy);
|
||||||
|
|
||||||
proxy->host_features_sel = 0;
|
proxy->host_features_sel = 0;
|
||||||
proxy->guest_features_sel = 0;
|
proxy->guest_features_sel = 0;
|
||||||
proxy->guest_page_shift = 0;
|
proxy->guest_page_shift = 0;
|
||||||
|
@ -636,7 +636,6 @@ static void virtio_mmio_reset(DeviceState *d)
|
||||||
proxy->guest_features[0] = proxy->guest_features[1] = 0;
|
proxy->guest_features[0] = proxy->guest_features[1] = 0;
|
||||||
|
|
||||||
for (i = 0; i < VIRTIO_QUEUE_MAX; i++) {
|
for (i = 0; i < VIRTIO_QUEUE_MAX; i++) {
|
||||||
proxy->vqs[i].enabled = 0;
|
|
||||||
proxy->vqs[i].num = 0;
|
proxy->vqs[i].num = 0;
|
||||||
proxy->vqs[i].desc[0] = proxy->vqs[i].desc[1] = 0;
|
proxy->vqs[i].desc[0] = proxy->vqs[i].desc[1] = 0;
|
||||||
proxy->vqs[i].avail[0] = proxy->vqs[i].avail[1] = 0;
|
proxy->vqs[i].avail[0] = proxy->vqs[i].avail[1] = 0;
|
||||||
|
|
Loading…
Reference in New Issue