diff mbox series

hw/intc/loongarch_extioi: Fix interrupt routing update

Message ID 20240313093932.2653518-1-maobibo@loongson.cn (mailing list archive)
State New, archived
Headers show
Series hw/intc/loongarch_extioi: Fix interrupt routing update | expand

Commit Message

Bibo Mao March 13, 2024, 9:39 a.m. UTC
Interrupt number in loop sentence should be base irq plus
loop index, it is missing on checking whether the irq
is pending.

Fixes: 428a6ef4396 ("Add vmstate post_load support")
Signed-off-by: Bibo Mao <maobibo@loongson.cn>
---
 hw/intc/loongarch_extioi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

gaosong March 20, 2024, 12:52 a.m. UTC | #1
在 2024/3/13 下午5:39, Bibo Mao 写道:
> Interrupt number in loop sentence should be base irq plus
> loop index, it is missing on checking whether the irq
> is pending.
>
> Fixes: 428a6ef4396 ("Add vmstate post_load support")
> Signed-off-by: Bibo Mao <maobibo@loongson.cn>
> ---
>   hw/intc/loongarch_extioi.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
Reviewed-by: Song Gao <gaosong@loongson.cn>

Thanks.
Song Gao
> diff --git a/hw/intc/loongarch_extioi.c b/hw/intc/loongarch_extioi.c
> index bdfa3b481e..0b358548eb 100644
> --- a/hw/intc/loongarch_extioi.c
> +++ b/hw/intc/loongarch_extioi.c
> @@ -151,7 +151,7 @@ static inline void extioi_update_sw_coremap(LoongArchExtIOI *s, int irq,
>               continue;
>           }
>   
> -        if (notify && test_bit(irq, (unsigned long *)s->isr)) {
> +        if (notify && test_bit(irq + i, (unsigned long *)s->isr)) {
>               /*
>                * lower irq at old cpu and raise irq at new cpu
>                */
diff mbox series

Patch

diff --git a/hw/intc/loongarch_extioi.c b/hw/intc/loongarch_extioi.c
index bdfa3b481e..0b358548eb 100644
--- a/hw/intc/loongarch_extioi.c
+++ b/hw/intc/loongarch_extioi.c
@@ -151,7 +151,7 @@  static inline void extioi_update_sw_coremap(LoongArchExtIOI *s, int irq,
             continue;
         }
 
-        if (notify && test_bit(irq, (unsigned long *)s->isr)) {
+        if (notify && test_bit(irq + i, (unsigned long *)s->isr)) {
             /*
              * lower irq at old cpu and raise irq at new cpu
              */