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
This commit is contained in:
rrs 2010-01-28 14:01:16 +00:00
parent 72062fdcec
commit 35fcb712f9
2 changed files with 8 additions and 5 deletions

View File

@ -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);

View File

@ -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