|
@@ -45,7 +45,7 @@ int setup_profiling_timer(unsigned int multiplier)
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
}
|
|
}
|
|
|
|
|
|
-irqreturn_t handle_ipi(void)
|
|
|
|
|
|
+void riscv_software_interrupt(void)
|
|
{
|
|
{
|
|
unsigned long *pending_ipis = &ipi_data[smp_processor_id()].bits;
|
|
unsigned long *pending_ipis = &ipi_data[smp_processor_id()].bits;
|
|
|
|
|
|
@@ -60,7 +60,7 @@ irqreturn_t handle_ipi(void)
|
|
|
|
|
|
ops = xchg(pending_ipis, 0);
|
|
ops = xchg(pending_ipis, 0);
|
|
if (ops == 0)
|
|
if (ops == 0)
|
|
- return IRQ_HANDLED;
|
|
|
|
|
|
+ return;
|
|
|
|
|
|
if (ops & (1 << IPI_RESCHEDULE))
|
|
if (ops & (1 << IPI_RESCHEDULE))
|
|
scheduler_ipi();
|
|
scheduler_ipi();
|
|
@@ -73,8 +73,6 @@ irqreturn_t handle_ipi(void)
|
|
/* Order data access and bit testing. */
|
|
/* Order data access and bit testing. */
|
|
mb();
|
|
mb();
|
|
}
|
|
}
|
|
-
|
|
|
|
- return IRQ_HANDLED;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
static void
|
|
static void
|