Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:11.4
kvm.853
S390-0005--S390-Implement-virtio-reset.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File S390-0005--S390-Implement-virtio-reset.patch of Package kvm.853
From 8a58e36b9a4e4096b0faf2379607df8a9536d137 Mon Sep 17 00:00:00 2001 From: Alexander Graf <agraf@suse.de> Date: Thu, 1 Apr 2010 18:23:36 +0200 Subject: [PATCH 5/6] [S390] Implement virtio reset The guest may issue a RESET command for virtio. So far we didn't bother to implement it, but with my new bootloader we actually need it for Linux to get back to a safe state. Signed-off-by: Alexander Graf <agraf@suse.de> --- hw/s390-virtio-bus.c | 3 +-- hw/s390-virtio-bus.h | 1 + hw/s390-virtio.c | 9 +++++---- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/hw/s390-virtio-bus.c b/hw/s390-virtio-bus.c index 9fc01e9..b52d08d 100644 --- a/hw/s390-virtio-bus.c +++ b/hw/s390-virtio-bus.c @@ -56,7 +56,6 @@ typedef struct { static const VirtIOBindings virtio_s390_bindings; static ram_addr_t s390_virtio_device_num_vq(VirtIOS390Device *dev); -static void s390_virtio_device_sync(VirtIOS390Device *dev); VirtIOS390Bus *s390_virtio_bus_init(ram_addr_t *ram_size) { @@ -185,7 +184,7 @@ static ram_addr_t s390_virtio_next_ring(VirtIOS390Bus *bus) return r; } -static void s390_virtio_device_sync(VirtIOS390Device *dev) +void s390_virtio_device_sync(VirtIOS390Device *dev) { VirtIOS390Bus *bus = DO_UPCAST(VirtIOS390Bus, bus, dev->qdev.parent_bus); ram_addr_t cur_offs; diff --git a/hw/s390-virtio-bus.h b/hw/s390-virtio-bus.h index 0ea8f54..333fea8 100644 --- a/hw/s390-virtio-bus.h +++ b/hw/s390-virtio-bus.h @@ -65,3 +65,4 @@ extern VirtIOS390Device *s390_virtio_bus_find_vring(VirtIOS390Bus *bus, int *vq_num); extern VirtIOS390Device *s390_virtio_bus_find_mem(VirtIOS390Bus *bus, ram_addr_t mem); +extern void s390_virtio_device_sync(VirtIOS390Device *dev); diff --git a/hw/s390-virtio.c b/hw/s390-virtio.c index ad3386f..c36a8b2 100644 --- a/hw/s390-virtio.c +++ b/hw/s390-virtio.c @@ -99,10 +99,11 @@ int s390_virtio_hypercall(CPUState *env) break; case KVM_S390_VIRTIO_RESET: { - /* Virtio_reset resets the internal addresses, so we'd have to sync - them up again. We don't want to reallocate a vring though, so let's - just not reset. */ - /* virtio_reset(dev->vdev); */ + VirtIOS390Device *dev; + + dev = s390_virtio_bus_find_mem(s390_bus, mem); + virtio_reset(dev->vdev); + s390_virtio_device_sync(dev); break; } case KVM_S390_VIRTIO_SET_STATUS: -- 1.6.0.2
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor