[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 04/17] s390x/kvm: Fixed bad SIGP SET-ARCHITECTURE ha
From: |
Christian Borntraeger |
Subject: |
[Qemu-devel] [PATCH 04/17] s390x/kvm: Fixed bad SIGP SET-ARCHITECTURE handler |
Date: |
Tue, 25 Feb 2014 11:05:22 +0100 |
From: Thomas Huth <address@hidden>
The SET-ARCHITECTURE handler in QEMU caused a program interruption.
This is wrong according to the "Principles of Operations" specification
(since SIGP should never cause a program interrupt) and was likely only
introduced for debugging purposes. Since we handle SET-ARCHITECTURE in
the kernel already and only dropped to user space in case of bad mode
parameters, we should just report INVALID PARAMETER in QEMU instead.
Signed-off-by: Thomas Huth <address@hidden>
Reviewed-by: Cornelia Huck <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>
---
target-s390x/kvm.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/target-s390x/kvm.c b/target-s390x/kvm.c
index 9430a35..b93fe84 100644
--- a/target-s390x/kvm.c
+++ b/target-s390x/kvm.c
@@ -676,8 +676,10 @@ static int handle_sigp(S390CPU *cpu, struct kvm_run *run,
uint8_t ipa1)
cc = kvm_s390_cpu_restart(target_cpu);
break;
case SIGP_SET_ARCH:
- /* make the caller panic */
- return -1;
+ *statusreg &= 0xffffffff00000000UL;
+ *statusreg |= SIGP_STAT_INVALID_PARAMETER;
+ cc = 1; /* status stored */
+ break;
case SIGP_INITIAL_CPU_RESET:
cc = s390_cpu_initial_reset(target_cpu);
break;
--
1.8.4.2
- [Qemu-devel] [PATCH 00/17] s390x/kvm: pending patches, Christian Borntraeger, 2014/02/25
- [Qemu-devel] [PATCH 06/17] s390x/virtio-hcall: Specification exception for illegal subcodes, Christian Borntraeger, 2014/02/25
- [Qemu-devel] [PATCH 04/17] s390x/kvm: Fixed bad SIGP SET-ARCHITECTURE handler,
Christian Borntraeger <=
- [Qemu-devel] [PATCH 01/17] update linux headers to kvm/queue, Christian Borntraeger, 2014/02/25
- [Qemu-devel] [PATCH 14/17] s390x/event-facility: exploit realize/unrealize, Christian Borntraeger, 2014/02/25
- [Qemu-devel] [PATCH 07/17] s390x/eventfacility: mask out commands, Christian Borntraeger, 2014/02/25
- [Qemu-devel] [PATCH 15/17] s390-ccw.img: Fix sporadic reboot hangs: Initialize next_idx, Christian Borntraeger, 2014/02/25
- [Qemu-devel] [PATCH 09/17] s390x/sclp: Add missing checks to SCLP handler, Christian Borntraeger, 2014/02/25
- [Qemu-devel] [PATCH 10/17] s390x/sclp: Fixed setting of condition code register, Christian Borntraeger, 2014/02/25
- [Qemu-devel] [PATCH 16/17] s390-ccw.img: Fix sporadic errors with ccw boot image - initialize css, Christian Borntraeger, 2014/02/25
- [Qemu-devel] [PATCH 03/17] s390x/async_pf: Check for apf extension and enable pfault, Christian Borntraeger, 2014/02/25
- [Qemu-devel] [PATCH 08/17] s390x/sclp: Fixed the size of sccb and code parameter, Christian Borntraeger, 2014/02/25
- [Qemu-devel] [PATCH 02/17] s390x/kvm: implement floating-interrupt controller device, Christian Borntraeger, 2014/02/25