[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] s390x/tcg: initialize machine check queue
From: |
Thomas Huth |
Subject: |
Re: [Qemu-devel] [PATCH] s390x/tcg: initialize machine check queue |
Date: |
Thu, 5 Oct 2017 14:49:43 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 |
On 04.10.2017 18:25, Cornelia Huck wrote:
> Just as for external interrupts and I/O interrupts, we need to
> initialize mchk_index during cpu reset.
>
> Signed-off-by: Cornelia Huck <address@hidden>
> ---
>
> Trying a device_add with a ccw device under tcg currently insta-crashes
> qemu. Probably nobody ever tried the crw machine check support that I
> hacked in...
>
> Needs more work to avoid a guest kernel panic next; but let's pick the
> low-hanging fruit first.
>
> ---
> target/s390x/cpu.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c
> index 4e1823a3e0..3fdf9bae70 100644
> --- a/target/s390x/cpu.c
> +++ b/target/s390x/cpu.c
> @@ -111,6 +111,7 @@ static void s390_cpu_initial_reset(CPUState *s)
> for (i = 0; i < ARRAY_SIZE(env->io_index); i++) {
> env->io_index[i] = -1;
> }
> + env->mchk_index = -1;
>
> /* tininess for underflow is detected before rounding */
> set_float_detect_tininess(float_tininess_before_rounding,
> @@ -148,6 +149,7 @@ static void s390_cpu_full_reset(CPUState *s)
> for (i = 0; i < ARRAY_SIZE(env->io_index); i++) {
> env->io_index[i] = -1;
> }
> + env->mchk_index = -1;
>
> /* tininess for underflow is detected before rounding */
> set_float_detect_tininess(float_tininess_before_rounding,
>
Makes sense.
Reviewed-by: Thomas Huth <address@hidden>
PS: I wonder whether the common code of s390_cpu_initial_reset() and
s390_cpu_full_reset() should be put into a separate function? Or maybe
s390_cpu_full_reset() should call s390_cpu_initial_reset() ? At least
the code duplication here looks like we should do some clean up here...
Thomas