aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorElliott Mitchell <ehem+freebsd@m5p.com>2021-10-08 21:43:26 +0000
committerWarner Losh <imp@FreeBSD.org>2024-05-10 21:33:24 +0000
commit38c35248fe3b740e107682b4a10bebe28992590f (patch)
treea5ea186f6ffea09de0214fc41658069b673ba182 /sys
parent335c7cda12138f2aefa41fb739707612cc12a9be (diff)
downloadsrc-38c35248fe3b740e107682b4a10bebe28992590f.tar.gz
src-38c35248fe3b740e107682b4a10bebe28992590f.zip
kern/intr: remove support for passing trap frame as argument
While otherwise a handy potential approach, getting the trap frame via the argument isn't documented and isn't supposed to be used. With all uses removed, now remove support to end the mixed calling conventions. Differential Revision: https://reviews.freebsd.org/D37688 Reviewed by: imp, mhorne Pull Request: https://github.com/freebsd/freebsd-src/pull/1225
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/kern_intr.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/sys/kern/kern_intr.c b/sys/kern/kern_intr.c
index 9073e0d7af01..008f8d1242ca 100644
--- a/sys/kern/kern_intr.c
+++ b/sys/kern/kern_intr.c
@@ -1346,8 +1346,8 @@ ithread_loop(void *arg)
*
* Input:
* o ie: the event connected to this interrupt.
- * o frame: some archs (i.e. i386) pass a frame to some.
- * handlers as their main argument.
+ * o frame: the current trap frame.
+ *
* Return value:
* o 0: everything ok.
* o EINVAL: stray interrupt.
@@ -1374,9 +1374,6 @@ intr_event_handle(struct intr_event *ie, struct trapframe *frame)
/*
* Execute fast interrupt handlers directly.
- * To support clock handlers, if a handler registers
- * with a NULL argument, then we pass it a pointer to
- * a trapframe as its argument.
*/
td->td_intr_nesting_level++;
filter = false;
@@ -1405,12 +1402,8 @@ intr_event_handle(struct intr_event *ie, struct trapframe *frame)
continue;
}
CTR4(KTR_INTR, "%s: exec %p(%p) for %s", __func__,
- ih->ih_filter, ih->ih_argument == NULL ? frame :
- ih->ih_argument, ih->ih_name);
- if (ih->ih_argument == NULL)
- ret = ih->ih_filter(frame);
- else
- ret = ih->ih_filter(ih->ih_argument);
+ ih->ih_filter, ih->ih_argument, ih->ih_name);
+ ret = ih->ih_filter(ih->ih_argument);
#ifdef HWPMC_HOOKS
PMC_SOFT_CALL_TF( , , intr, all, frame);
#endif