diff options
author | Elliott Mitchell <ehem+freebsd@m5p.com> | 2021-10-08 21:43:26 +0000 |
---|---|---|
committer | Warner Losh <imp@FreeBSD.org> | 2024-05-10 21:33:24 +0000 |
commit | 38c35248fe3b740e107682b4a10bebe28992590f (patch) | |
tree | a5ea186f6ffea09de0214fc41658069b673ba182 /sys | |
parent | 335c7cda12138f2aefa41fb739707612cc12a9be (diff) | |
download | src-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.c | 15 |
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 |