[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v1 06/27] s390x/tcg: injection of emergency sign
From: |
David Hildenbrand |
Subject: |
Re: [Qemu-devel] [PATCH v1 06/27] s390x/tcg: injection of emergency signals and extarnal calls |
Date: |
Mon, 25 Sep 2017 15:16:31 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 |
> @@ -248,6 +249,19 @@ static void do_ext_interrupt(CPUS390XState *env)
> lowcore->ext_int_code = cpu_to_be16(EXT_CPU_TIMER);
> lowcore->cpu_addr = 0;
> env->pending_int &= ~INTERRUPT_EXT_CPU_TIMER;
> + } else if (env->pending_int & INTERRUPT_EMERGENCY_SIGNAL) {
> + lowcore->ext_int_code = cpu_to_be16(EXT_EMERGENCY);
> + cpu_addr = find_first_bit(env->emergency_signals, S390_MAX_CPUS);
> + g_assert(cpu_addr < S390_MAX_CPUS);
> + lowcore->cpu_addr = cpu_to_be16(cpu_addr);
> + clear_bit(cpu_addr, env->emergency_signals);
> + if (bitmap_empty(env->emergency_signals, max_cpus)) {
> + env->pending_int &= ~INTERRUPT_EMERGENCY_SIGNAL;
> + }
> + } else if (env->pending_int & INTERRUPT_EXTERNAL_CALL) {
> + lowcore->ext_int_code = cpu_to_be16(EXT_EXTERNAL_CALL);
> + lowcore->cpu_addr = cpu_to_be16(env->external_call_addr);
> + env->pending_int &= ~INTERRUPT_EXTERNAL_CALL;
The priority of the interrupts is still wrong and we don't check for the
subclass-mask bits. Will fix this.
--
Thanks,
David
- Re: [Qemu-devel] [PATCH v1 04/27] s390x: introduce and use S390_MAX_CPUS, (continued)
- [Qemu-devel] [PATCH v1 05/27] s390/tcg: turn INTERRUPT_EXT into a mask, David Hildenbrand, 2017/09/18
- [Qemu-devel] [PATCH v1 06/27] s390x/tcg: injection of emergency signals and extarnal calls, David Hildenbrand, 2017/09/18
- Re: [Qemu-devel] [PATCH v1 06/27] s390x/tcg: injection of emergency signals and extarnal calls,
David Hildenbrand <=
- [Qemu-devel] [PATCH v1 08/27] s390x/tcg: a CPU cannot switch state due to an interrupt, David Hildenbrand, 2017/09/18
- [Qemu-devel] [PATCH v1 07/27] s390x/tcg: STOPPED cpus can never wake up, David Hildenbrand, 2017/09/18
- [Qemu-devel] [PATCH v1 09/27] target/s390x: factor out handling of WAIT PSW into handle_wait(), David Hildenbrand, 2017/09/18
- [Qemu-devel] [PATCH v1 10/27] s390x/kvm: pass ipb directly into handle_sigp(), David Hildenbrand, 2017/09/18