From ac0081eddddb7cd4e18c139111d2e1456fd632bb Mon Sep 17 00:00:00 2001 From: Masamichi Takagi Date: Mon, 15 Jun 2020 13:01:12 +0900 Subject: [PATCH] handle_interrupt_gicv3: don't take runq_lock To avoid dead-lock with the function taking the lock with ihk_mc_spinlock_lock_noirq(). Change-Id: If689e8cc5fff81f627bcf98bfa7df7d4c13f4209 --- arch/arm64/kernel/irq-gic-v3.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm64/kernel/irq-gic-v3.c b/arch/arm64/kernel/irq-gic-v3.c index 12184d7b..c356efb3 100644 --- a/arch/arm64/kernel/irq-gic-v3.c +++ b/arch/arm64/kernel/irq-gic-v3.c @@ -311,7 +311,7 @@ void handle_interrupt_gicv3(struct pt_regs *regs) uint64_t irqnr; const int from_user = interrupt_from_user(regs); struct cpu_local_var *v = get_this_cpu_local_var(); - unsigned long irqflags; + //unsigned long irqflags; int do_check = 0; irqnr = gic_read_iar(); @@ -326,14 +326,14 @@ void handle_interrupt_gicv3(struct pt_regs *regs) } set_cputime(from_user ? CPUTIME_MODE_K2U : CPUTIME_MODE_K2K_OUT); - irqflags = ihk_mc_spinlock_lock(&v->runq_lock); + //irqflags = ihk_mc_spinlock_lock(&v->runq_lock); /* For migration by IPI or by timesharing */ if (v->flags & (CPU_FLAG_NEED_MIGRATE | CPU_FLAG_NEED_RESCHED)) { v->flags &= ~CPU_FLAG_NEED_RESCHED; do_check = 1; } - ihk_mc_spinlock_unlock(&v->runq_lock, irqflags); + //ihk_mc_spinlock_unlock(&v->runq_lock, irqflags); if (do_check) { check_signal(0, regs, 0);