aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorAnthony Liguori <anthony@codemonkey.ws>2013-08-30 12:25:56 -0500
committerAnthony Liguori <anthony@codemonkey.ws>2013-08-30 12:25:56 -0500
commitb95fdc0e99e9b5c98bb8e2aee9eaffe160f1031b (patch)
tree3134edaa7e64cf853b2ab83e41c82a8f18dc5eca /hw
parentb5d54bd42158b90b239bb6ce9c13072eb3a53fd2 (diff)
parent7f7f975295bc19829b3bd26cadc7f1c9eadb7c6b (diff)
downloadqemu-b95fdc0e99e9b5c98bb8e2aee9eaffe160f1031b.zip
qemu-b95fdc0e99e9b5c98bb8e2aee9eaffe160f1031b.tar.gz
qemu-b95fdc0e99e9b5c98bb8e2aee9eaffe160f1031b.tar.bz2
Merge remote-tracking branch 'borntraeger/tags/kdump' into staging
This is a set of patches dealing with kdump support for s390x/kvm. kdump on s390x uses subcode 1 of diagnose 0x308 to put the hardware in a defined state. This is different from a full reset, since it does not touch all CPU registers. These patches define the cpu resets, the subsystem reset a load function and also wires up the "nmi" command to issue a RESTART interrupt as defined in the z/Architecture principles of operation. This allows recent guest kernels with properly setup userspace to trigger kdump: - via guest crash - via nmi from the host # gpg: Signature made Fri 30 Aug 2013 07:19:18 AM CDT using RSA key ID B5A61C7C # gpg: Can't check signature: public key not found # By Christian Borntraeger (5) and Eugene (jno) Dvurechenski (2) # Via Christian Borntraeger * borntraeger/tags/kdump: s390: wire up nmi command to raise a RESTART interrupt on S390 s390: Implement load normal reset s390/cpu: split CPU reset into architectured functions s390: provide a cpu load normal function s390: provide I/O subsystem reset s390/kvm: basic implementation of diagnose 308 subcode 6 s390x/kvm: Fix switch/case indentation for handle_diag Message-id: 1377810649-47484-1-git-send-email-borntraeger@de.ibm.com
Diffstat (limited to 'hw')
-rw-r--r--hw/s390x/s390-virtio-ccw.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index aebbbf1..8fd46a9 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];