X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Flinux%2Fhardirq.h;fp=include%2Flinux%2Fhardirq.h;h=eab537091f2a1602e55a17b5cdc7a17afb20f99f;hb=64ba3f394c830ec48a1c31b53dcae312c56f1604;hp=50d8b5744cf6fc5d7e5387289e7139e99cb557b3;hpb=be1e6109ac94a859551f8e1774eb9a8469fe055c;p=linux-2.6.git diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h index 50d8b5744..eab537091 100644 --- a/include/linux/hardirq.h +++ b/include/linux/hardirq.h @@ -1,9 +1,9 @@ #ifndef LINUX_HARDIRQ_H #define LINUX_HARDIRQ_H +#include #include #include -#include #include #include @@ -87,6 +87,9 @@ extern void synchronize_irq(unsigned int irq); # define synchronize_irq(irq) barrier() #endif +#define nmi_enter() irq_enter() +#define nmi_exit() sub_preempt_count(HARDIRQ_OFFSET) + struct task_struct; #ifndef CONFIG_VIRT_CPU_ACCOUNTING @@ -95,35 +98,12 @@ static inline void account_system_vtime(struct task_struct *tsk) } #endif -/* - * It is safe to do non-atomic ops on ->hardirq_context, - * because NMI handlers may not preempt and the ops are - * always balanced, so the interrupted value of ->hardirq_context - * will always be restored. - */ #define irq_enter() \ do { \ account_system_vtime(current); \ add_preempt_count(HARDIRQ_OFFSET); \ - trace_hardirq_enter(); \ - } while (0) - -/* - * Exit irq context without processing softirqs: - */ -#define __irq_exit() \ - do { \ - trace_hardirq_exit(); \ - account_system_vtime(current); \ - sub_preempt_count(HARDIRQ_OFFSET); \ } while (0) -/* - * Exit irq context and process softirqs if needed: - */ extern void irq_exit(void); -#define nmi_enter() do { lockdep_off(); irq_enter(); } while (0) -#define nmi_exit() do { __irq_exit(); lockdep_on(); } while (0) - #endif /* LINUX_HARDIRQ_H */