diff options
| author | Ingo Molnar <mingo@elte.hu> | 2006-07-03 03:24:42 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-07-03 18:27:03 -0400 |
| commit | de30a2b355ea85350ca2f58f3b9bf4e5bc007986 (patch) | |
| tree | 0bef670aff65614b3c78ca13b20307355b8221d5 /include/linux/interrupt.h | |
| parent | 5bdc9b447c0076f494a56fdcd93ee8c5e78a2afd (diff) | |
[PATCH] lockdep: irqtrace subsystem, core
Accurate hard-IRQ-flags and softirq-flags state tracing.
This allows us to attach extra functionality to IRQ flags on/off
events (such as trace-on/off).
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux/interrupt.h')
| -rw-r--r-- | include/linux/interrupt.h | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index 73463fbb38e..d5afee95fd4 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h | |||
| @@ -10,6 +10,7 @@ | |||
| 10 | #include <linux/irqreturn.h> | 10 | #include <linux/irqreturn.h> |
| 11 | #include <linux/hardirq.h> | 11 | #include <linux/hardirq.h> |
| 12 | #include <linux/sched.h> | 12 | #include <linux/sched.h> |
| 13 | #include <linux/irqflags.h> | ||
| 13 | #include <asm/atomic.h> | 14 | #include <asm/atomic.h> |
| 14 | #include <asm/ptrace.h> | 15 | #include <asm/ptrace.h> |
| 15 | #include <asm/system.h> | 16 | #include <asm/system.h> |
| @@ -199,13 +200,11 @@ static inline void __deprecated save_and_cli(unsigned long *x) | |||
| 199 | #define save_and_cli(x) save_and_cli(&x) | 200 | #define save_and_cli(x) save_and_cli(&x) |
| 200 | #endif /* CONFIG_SMP */ | 201 | #endif /* CONFIG_SMP */ |
| 201 | 202 | ||
| 202 | /* SoftIRQ primitives. */ | 203 | extern void local_bh_disable(void); |
| 203 | #define local_bh_disable() \ | 204 | extern void __local_bh_enable(void); |
| 204 | do { add_preempt_count(SOFTIRQ_OFFSET); barrier(); } while (0) | 205 | extern void _local_bh_enable(void); |
| 205 | #define __local_bh_enable() \ | ||
| 206 | do { barrier(); sub_preempt_count(SOFTIRQ_OFFSET); } while (0) | ||
| 207 | |||
| 208 | extern void local_bh_enable(void); | 206 | extern void local_bh_enable(void); |
| 207 | extern void local_bh_enable_ip(unsigned long ip); | ||
| 209 | 208 | ||
| 210 | /* PLEASE, avoid to allocate new softirqs, if you need not _really_ high | 209 | /* PLEASE, avoid to allocate new softirqs, if you need not _really_ high |
| 211 | frequency threaded job scheduling. For almost all the purposes | 210 | frequency threaded job scheduling. For almost all the purposes |
