summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/fork.c2
-rw-r--r--kernel/module.c1
-rw-r--r--kernel/sched.c3
3 files changed, 5 insertions, 1 deletions
diff --git a/kernel/fork.c b/kernel/fork.c
index a05f52776e35..d7a274cbec95 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -29,6 +29,8 @@
#include <asm/pgalloc.h>
#include <asm/uaccess.h>
#include <asm/mmu_context.h>
+#include <asm/cacheflush.h>
+#include <asm/tlbflush.h>
static kmem_cache_t *task_struct_cachep;
diff --git a/kernel/module.c b/kernel/module.c
index d0ed467083f9..8d2f2a46de0e 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -11,6 +11,7 @@
#include <linux/kmod.h>
#include <linux/seq_file.h>
#include <linux/fs.h>
+#include <asm/cacheflush.h>
/*
* Originally by Anonymous (as far as I know...)
diff --git a/kernel/sched.c b/kernel/sched.c
index 49aa10fe905c..20afd755a7b5 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -843,7 +843,8 @@ asmlinkage void preempt_schedule(void)
{
if (unlikely(preempt_get_count()))
return;
- current->state = TASK_RUNNING;
+ if (current->state != TASK_RUNNING)
+ return;
schedule();
}
#endif /* CONFIG_PREEMPT */