Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F102550682
D37938.id121105.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D37938.id121105.diff
View Options
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
@@ -917,7 +917,6 @@
void
intr_ipi_dispatch(u_int ipi, struct trapframe *tf)
{
- void *arg;
struct intr_ipi *ii;
ii = intr_ipi_lookup(ipi);
@@ -926,12 +925,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
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Nov 14, 10:47 PM (8 h, 11 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14634741
Default Alt Text
D37938.id121105.diff (2 KB)
Attached To
Mode
D37938: arm: remove interrupt nesting by ipi_preempt()/ipi_hardclock()
Attached
Detach File
Event Timeline
Log In to Comment