projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux...
[cascardo/linux.git]
/
kernel
/
softirq.c
diff --git
a/kernel/softirq.c
b/kernel/softirq.c
index
8de2677
..
d7837d4
100644
(file)
--- a/
kernel/softirq.c
+++ b/
kernel/softirq.c
@@
-3,7
+3,9
@@
*
* Copyright (C) 1992 Linus Torvalds
*
*
* Copyright (C) 1992 Linus Torvalds
*
- * Rewritten. Old one was good in 2.2, but in 2.3 it was immoral. --ANK (990903)
+ * Distribute under GPLv2.
+ *
+ * Rewritten. Old one was good in 2.2, but in 2.3 it was immoral. --ANK (990903)
*/
#include <linux/module.h>
*/
#include <linux/module.h>
@@
-14,6
+16,7
@@
#include <linux/notifier.h>
#include <linux/percpu.h>
#include <linux/cpu.h>
#include <linux/notifier.h>
#include <linux/percpu.h>
#include <linux/cpu.h>
+#include <linux/freezer.h>
#include <linux/kthread.h>
#include <linux/rcupdate.h>
#include <linux/smp.h>
#include <linux/kthread.h>
#include <linux/rcupdate.h>
#include <linux/smp.h>
@@
-270,8
+273,6
@@
asmlinkage void do_softirq(void)
local_irq_restore(flags);
}
local_irq_restore(flags);
}
-EXPORT_SYMBOL(do_softirq);
-
#endif
/*
#endif
/*
@@
-279,9
+280,14
@@
EXPORT_SYMBOL(do_softirq);
*/
void irq_enter(void)
{
*/
void irq_enter(void)
{
+#ifdef CONFIG_NO_HZ
+ int cpu = smp_processor_id();
+ if (idle_cpu(cpu) && !in_interrupt())
+ tick_nohz_stop_idle(cpu);
+#endif
__irq_enter();
#ifdef CONFIG_NO_HZ
__irq_enter();
#ifdef CONFIG_NO_HZ
- if (idle_cpu(
smp_processor_id()
))
+ if (idle_cpu(
cpu
))
tick_nohz_update_jiffies();
#endif
}
tick_nohz_update_jiffies();
#endif
}
@@
-331,8
+337,6
@@
inline fastcall void raise_softirq_irqoff(unsigned int nr)
wakeup_softirqd();
}
wakeup_softirqd();
}
-EXPORT_SYMBOL(raise_softirq_irqoff);
-
void fastcall raise_softirq(unsigned int nr)
{
unsigned long flags;
void fastcall raise_softirq(unsigned int nr)
{
unsigned long flags;
@@
-488,8
+492,6
@@
void __init softirq_init(void)
static int ksoftirqd(void * __bind_cpu)
{
static int ksoftirqd(void * __bind_cpu)
{
- current->flags |= PF_NOFREEZE;
-
set_current_state(TASK_INTERRUPTIBLE);
while (!kthread_should_stop()) {
set_current_state(TASK_INTERRUPTIBLE);
while (!kthread_should_stop()) {