diff --git a/sys/arm/arm/machdep_intr.c b/sys/arm/arm/machdep_intr.c --- a/sys/arm/arm/machdep_intr.c +++ b/sys/arm/arm/machdep_intr.c @@ -143,7 +143,6 @@ void intr_ipi_dispatch(u_int ipi, struct trapframe *tf) { - void *arg; struct intr_ipi *ii; ii = intr_ipi_lookup(ipi); @@ -152,12 +151,7 @@ intr_ipi_increment_count(ii->ii_count, PCPU_GET(cpuid)); - /* - * Supply ipi filter with trapframe argument - * if none is registered. - */ - arg = ii->ii_handler_arg != NULL ? ii->ii_handler_arg : tf; - ii->ii_handler(arg); + ii->ii_handler(ii->ii_handler_arg); } void diff --git a/sys/arm/arm/mp_machdep.c b/sys/arm/arm/mp_machdep.c --- a/sys/arm/arm/mp_machdep.c +++ b/sys/arm/arm/mp_machdep.c @@ -282,41 +282,17 @@ static void ipi_preempt(void *arg) { - struct trapframe *oldframe; - struct thread *td; - - critical_enter(); - td = curthread; - td->td_intr_nesting_level++; - oldframe = td->td_intr_frame; - td->td_intr_frame = (struct trapframe *)arg; CTR1(KTR_SMP, "%s: IPI_PREEMPT", __func__); - sched_preempt(td); - - td->td_intr_frame = oldframe; - td->td_intr_nesting_level--; - critical_exit(); + sched_preempt(curthread); } static void ipi_hardclock(void *arg) { - struct trapframe *oldframe; - struct thread *td; - - critical_enter(); - td = curthread; - td->td_intr_nesting_level++; - oldframe = td->td_intr_frame; - td->td_intr_frame = (struct trapframe *)arg; CTR1(KTR_SMP, "%s: IPI_HARDCLOCK", __func__); hardclockintr(); - - td->td_intr_frame = oldframe; - td->td_intr_nesting_level--; - critical_exit(); } static void diff --git a/sys/arm64/arm64/mp_machdep.c b/sys/arm64/arm64/mp_machdep.c --- a/sys/arm64/arm64/mp_machdep.c +++ b/sys/arm64/arm64/mp_machdep.c @@ -919,7 +919,6 @@ void intr_ipi_dispatch(u_int ipi, struct trapframe *tf) { - void *arg; struct intr_ipi *ii; ii = intr_ipi_lookup(ipi); @@ -928,12 +927,7 @@ intr_ipi_increment_count(ii->ii_count, PCPU_GET(cpuid)); - /* - * Supply ipi filter with trapframe argument - * if none is registered. - */ - arg = ii->ii_handler_arg != NULL ? ii->ii_handler_arg : tf; - ii->ii_handler(arg); + ii->ii_handler(ii->ii_handler_arg); } #ifdef notyet