diff -Nru linux-2.4.20-pre10-mjc1/kernel/context.c linux-2.4.20-pre10-mjc2/kernel/context.c
--- linux-2.4.20-pre10-mjc1/kernel/context.c	2001-10-11 14:17:22.000000000 -0400
+++ linux-2.4.20-pre10-mjc2/kernel/context.c	2002-10-25 08:18:19.000000000 -0400
@@ -16,6 +16,7 @@
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
+#include <linux/sched_runqueue.h>
 #include <linux/init.h>
 #include <linux/unistd.h>
 #include <linux/signal.h>
@@ -75,6 +76,13 @@
 	keventd_running = 1;
 	keventd_task = curtask;
 
+	/*
+	 * keventd events are like kernel code, it has priority over userspace.
+	 * This also means keventd must not be abused for not must-do tasks.
+	 */
+	keventd_task->policy = SCHED_RR;
+	keventd_task->rt_priority = MAX_USER_RT_PRIO;
+
 	spin_lock_irq(&curtask->sigmask_lock);
 	siginitsetinv(&curtask->blocked, sigmask(SIGCHLD));
 	recalc_sigpending(curtask);
