[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v1 1/1] intc/arm_gic: Fix gic_irq_signaling_enabled() for vCP
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH v1 1/1] intc/arm_gic: Fix gic_irq_signaling_enabled() for vCPUs |
Date: |
Tue, 15 Dec 2020 00:20:53 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.5.0 |
On 12/14/20 11:21 PM, Edgar E. Iglesias wrote:
> From: "Edgar E. Iglesias" <edgar.iglesias@xilinx.com>
>
> Correct the indexing into s->cpu_ctlr for vCPUs.
>
Fixes: cbe1282b568 ("intc/arm_gic: Implement gic_update_virt() function")
LGTM but better double-check with GIC specialist ;)
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com>
> ---
> hw/intc/arm_gic.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/hw/intc/arm_gic.c b/hw/intc/arm_gic.c
> index c60dc6b5e6..af41e2fb44 100644
> --- a/hw/intc/arm_gic.c
> +++ b/hw/intc/arm_gic.c
> @@ -141,6 +141,8 @@ static inline void gic_get_best_virq(GICState *s, int cpu,
> static inline bool gic_irq_signaling_enabled(GICState *s, int cpu, bool virt,
> int group_mask)
> {
> + int cpu_iface = virt ? (cpu + GIC_NCPU) : cpu;
> +
> if (!virt && !(s->ctlr & group_mask)) {
> return false;
> }
> @@ -149,7 +151,7 @@ static inline bool gic_irq_signaling_enabled(GICState *s,
> int cpu, bool virt,
> return false;
> }
>
> - if (!(s->cpu_ctlr[cpu] & group_mask)) {
> + if (!(s->cpu_ctlr[cpu_iface] & group_mask)) {
> return false;
> }
>
>