diff options
author | rrs <rrs@FreeBSD.org> | 2010-01-28 14:01:16 +0000 |
---|---|---|
committer | rrs <rrs@FreeBSD.org> | 2010-01-28 14:01:16 +0000 |
commit | 35fcb712f93a82f643a635770d2f6cd9bf2c617c (patch) | |
tree | 368e0da8a1e34664ff66cee9b2cf565f14020348 | |
parent | 72062fdcece91a123423691068781de9366fbfaa (diff) | |
download | FreeBSD-src-35fcb712f93a82f643a635770d2f6cd9bf2c617c.zip FreeBSD-src-35fcb712f93a82f643a635770d2f6cd9bf2c617c.tar.gz |
Changes the msg ring so its a filter not a
handler. Somehow rrs missed this.. Thanks
to JC for catching this ;-)
Obtained from: JC (jayachandranc@netlogicmicro.com
-rw-r--r-- | sys/mips/rmi/on_chip.c | 8 | ||||
-rw-r--r-- | sys/mips/rmi/xlr_machdep.c | 5 |
2 files changed, 8 insertions, 5 deletions
diff --git a/sys/mips/rmi/on_chip.c b/sys/mips/rmi/on_chip.c index c0c73c4..cfab1d1 100644 --- a/sys/mips/rmi/on_chip.c +++ b/sys/mips/rmi/on_chip.c @@ -27,6 +27,8 @@ * SUCH DAMAGE. * * RMI_BSD */ +#include <sys/cdefs.h> +__FBSDID("$FreeBSD$"); #include <sys/types.h> #include <sys/systm.h> #include <sys/param.h> @@ -272,9 +274,9 @@ register_msgring_handler(int major, if (xlr_test_and_set(&msgring_int_enabled)) { platform_prep_smp_launch(); - cpu_establish_hardintr("msgring", (driver_filter_t *) NULL, - (driver_intr_t *) msgring_process_fast_intr, - NULL, IRQ_MSGRING, INTR_TYPE_NET | INTR_FAST, &cookie); + cpu_establish_hardintr("msgring", (driver_filter_t *) msgring_process_fast_intr, + NULL, NULL, IRQ_MSGRING, + INTR_TYPE_NET | INTR_FAST, &cookie); /* configure the msgring interrupt on cpu 0 */ enable_msgring_int(NULL); diff --git a/sys/mips/rmi/xlr_machdep.c b/sys/mips/rmi/xlr_machdep.c index ae95778..1dc1b3c 100644 --- a/sys/mips/rmi/xlr_machdep.c +++ b/sys/mips/rmi/xlr_machdep.c @@ -583,7 +583,7 @@ disable_msgring_int(void *arg); void enable_msgring_int(void *arg); void xlr_msgring_handler(struct trapframe *tf); -void msgring_process_fast_intr(void *arg); +int msgring_process_fast_intr(void *arg); struct msgring_ithread { struct thread *i_thread; @@ -594,7 +594,7 @@ struct msgring_ithread { struct msgring_ithread msgring_ithreads[MAXCPU]; char ithd_name[MAXCPU][32]; -void +int msgring_process_fast_intr(void *arg) { int cpu = PCPU_GET(cpuid); @@ -617,6 +617,7 @@ msgring_process_fast_intr(void *arg) sched_add(td, SRQ_INTR); } thread_unlock(td); + return FILTER_HANDLED; } static void |