From: Christian Borntraeger Date: Thu, 25 Jul 2013 14:37:37 +0000 (+0200) Subject: s390: provide I/O subsystem reset X-Git-Tag: v2.7.1~2317^2~4 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=4e872a3fb024f0d742ef6b48be3afaab2c4453fc;p=mirror_qemu.git s390: provide I/O subsystem reset Provide a function that resets the I/O subsystem. Signed-off-by: Christian Borntraeger Acked-by: Alexander Graf --- diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c index aebbbf1755..8fd46a92c9 100644 --- a/hw/s390x/s390-virtio-ccw.c +++ b/hw/s390x/s390-virtio-ccw.c @@ -17,6 +17,21 @@ #include "css.h" #include "virtio-ccw.h" +void io_subsystem_reset(void) +{ + DeviceState *css, *sclp; + + css = DEVICE(object_resolve_path_type("", "virtual-css-bridge", NULL)); + if (css) { + qdev_reset_all(css); + } + sclp = DEVICE(object_resolve_path_type("", + "s390-sclp-event-facility", NULL)); + if (sclp) { + qdev_reset_all(sclp); + } +} + static int virtio_ccw_hcall_notify(const uint64_t *args) { uint64_t subch_id = args[0]; diff --git a/target-s390x/cpu.h b/target-s390x/cpu.h index 0878ab6678..af9de5ed0b 100644 --- a/target-s390x/cpu.h +++ b/target-s390x/cpu.h @@ -400,6 +400,7 @@ void cpu_unlock(void); typedef struct SubchDev SubchDev; #ifndef CONFIG_USER_ONLY +extern void io_subsystem_reset(void); SubchDev *css_find_subch(uint8_t m, uint8_t cssid, uint8_t ssid, uint16_t schid); bool css_subch_visible(SubchDev *sch);