[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-arm] [PATCH 23/27] hw/core/or-irq: Support more than 16 inputs
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-arm] [PATCH 23/27] hw/core/or-irq: Support more than 16 inputs to an OR gate |
Date: |
Mon, 21 May 2018 16:34:10 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 |
On 21/05/2018 16:03, Peter Maydell wrote:
> + * VMState array; devices with more inputs than this need to
> + * migrate the extra lines via a subsection.
> + * The subsection migrates as much of the levels[] array as is needed
> + * (including repeating the first 16 elements), to avoid the awkwardness
> + * of splitting it in two to meet the requirements of VMSTATE_VARRAY_UINT16.
> + */
> +#define OLD_MAX_OR_LINES 16
> +#if MAX_OR_LINES < OLD_MAX_OR_LINES
> +#error MAX_OR_LINES must be at least 16 for migration compatibility
> +#endif
> +
> +static bool vmstate_extras_needed(void *opaque)
> +{
> + qemu_or_irq *s = OR_IRQ(opaque);
> +
> + return s->num_lines >= OLD_MAX_OR_LINES;
> +}
> +
> +static const VMStateDescription vmstate_or_irq_extras = {
> + .name = "or-irq-extras",
> + .version_id = 1,
> + .minimum_version_id = 1,
> + .needed = vmstate_extras_needed,
> + .fields = (VMStateField[]) {
> + VMSTATE_VARRAY_UINT16_UNSAFE(levels, qemu_or_irq, num_lines, 0,
> + vmstate_info_bool, bool),
> + VMSTATE_END_OF_LIST(),
> + },
> +};
> +
Why do the levels have to be migrated at all? It should be enough if
the IRQ level is either migrated manually, or restored (e.g. in
post_save callbacks) through other data that is migrated.
Paolo
- [Qemu-arm] [PATCH 03/27] Make address_space_translate{, _cached}() take a MemTxAttrs argument, (continued)
- [Qemu-arm] [PATCH 23/27] hw/core/or-irq: Support more than 16 inputs to an OR gate, Peter Maydell, 2018/05/21
- Re: [Qemu-arm] [PATCH 23/27] hw/core/or-irq: Support more than 16 inputs to an OR gate,
Paolo Bonzini <=
- Re: [Qemu-arm] [PATCH 23/27] hw/core/or-irq: Support more than 16 inputs to an OR gate, Peter Maydell, 2018/05/21
- Re: [Qemu-arm] [Qemu-devel] [PATCH 23/27] hw/core/or-irq: Support more than 16 inputs to an OR gate, Paolo Bonzini, 2018/05/30
- Re: [Qemu-arm] [Qemu-devel] [PATCH 23/27] hw/core/or-irq: Support more than 16 inputs to an OR gate, Peter Maydell, 2018/05/30
- Re: [Qemu-arm] [Qemu-devel] [PATCH 23/27] hw/core/or-irq: Support more than 16 inputs to an OR gate, Paolo Bonzini, 2018/05/31
- Re: [Qemu-arm] [Qemu-devel] [PATCH 23/27] hw/core/or-irq: Support more than 16 inputs to an OR gate, Peter Maydell, 2018/05/31
- Re: [Qemu-arm] [Qemu-devel] [PATCH 23/27] hw/core/or-irq: Support more than 16 inputs to an OR gate, Paolo Bonzini, 2018/05/31
- Re: [Qemu-arm] [Qemu-devel] [PATCH 23/27] hw/core/or-irq: Support more than 16 inputs to an OR gate, Peter Maydell, 2018/05/31
[Qemu-arm] [PATCH 21/27] hw/misc/tz_mpc.c: Honour the BLK_LUT settings in translate, Peter Maydell, 2018/05/21
[Qemu-arm] [PATCH 26/27] hw/arm/iotkit: Wire up MPC interrupt lines, Peter Maydell, 2018/05/21