Skip to content

Commit bdfb2a2

Browse files
fix(riscv/interrupts): call generic IRQC function for sending IPIs
When using IMSIC, IPIs are sent through direct MSI write in the interrupt file of the target hart. The path through OpenSBI (sbi_send_ipi) is not suitable since SUPERVISOR SOFTWARE INTERRUPTS (SSI) are not enabled in this scenario. By using the generic irqc_send_ipi() function, the IPI sending process is handled correctly in all the possible configurations (PLIC, APLIC, IMSIC). Signed-off-by: Filippo Fontana <[email protected]>
1 parent a1daae7 commit bdfb2a2

File tree

1 file changed

+1
-3
lines changed

1 file changed

+1
-3
lines changed

src/arch/riscv/interrupts.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,10 @@ void interrupts_arch_init()
4242

4343
void interrupts_arch_ipi_send(cpuid_t target_cpu, irqid_t ipi_id)
4444
{
45-
UNUSED_ARG(ipi_id);
46-
4745
if (USE_ACLINT_IPI()) {
4846
aclint_send_ipi(target_cpu);
4947
} else {
50-
sbi_send_ipi(1UL << target_cpu, 0);
48+
irqc_send_ipi(target_cpu, ipi_id);
5149
}
5250
}
5351

0 commit comments

Comments
 (0)