Date: Wed, 7 Oct 2020 12:11:11 +0000 (UTC) From: Edward Tomasz Napierala <trasz@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r366515 - head/sys/riscv/riscv Message-ID: <202010071211.097CBBr4044905@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: trasz Date: Wed Oct 7 12:11:11 2020 New Revision: 366515 URL: https://svnweb.freebsd.org/changeset/base/366515 Log: Don't use critical section when calling intr_irq_handler() - that function enters critical section by itself anyway. Reviewed by: kp Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D26694 Modified: head/sys/riscv/riscv/intr_machdep.c Modified: head/sys/riscv/riscv/intr_machdep.c ============================================================================== --- head/sys/riscv/riscv/intr_machdep.c Wed Oct 7 10:58:56 2020 (r366514) +++ head/sys/riscv/riscv/intr_machdep.c Wed Oct 7 12:11:11 2020 (r366515) @@ -158,8 +158,6 @@ riscv_cpu_intr(struct trapframe *frame) struct intr_irqsrc *isrc; int active_irq; - critical_enter(); - KASSERT(frame->tf_scause & EXCP_INTR, ("riscv_cpu_intr: wrong frame passed")); @@ -169,18 +167,16 @@ riscv_cpu_intr(struct trapframe *frame) case IRQ_SOFTWARE_USER: case IRQ_SOFTWARE_SUPERVISOR: case IRQ_TIMER_SUPERVISOR: + critical_enter(); isrc = &isrcs[active_irq].isrc; if (intr_isrc_dispatch(isrc, frame) != 0) printf("stray interrupt %d\n", active_irq); + critical_exit(); break; case IRQ_EXTERNAL_SUPERVISOR: intr_irq_handler(frame); break; - default: - break; } - - critical_exit(); } #ifdef SMP
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202010071211.097CBBr4044905>