1 #ifndef _LINUX_BH_H 2 #define _LINUX_BH_H 3 4 #include <linux/preempt.h> 5 6 #ifdef CONFIG_TRACE_IRQFLAGS 7 extern void __local_bh_disable_ip(unsigned long ip, unsigned int cnt); 8 #else __local_bh_disable_ip(unsigned long ip,unsigned int cnt)9static __always_inline void __local_bh_disable_ip(unsigned long ip, unsigned int cnt) 10 { 11 preempt_count_add(cnt); 12 barrier(); 13 } 14 #endif 15 local_bh_disable(void)16static inline void local_bh_disable(void) 17 { 18 __local_bh_disable_ip(_THIS_IP_, SOFTIRQ_DISABLE_OFFSET); 19 } 20 21 extern void _local_bh_enable(void); 22 extern void __local_bh_enable_ip(unsigned long ip, unsigned int cnt); 23 local_bh_enable_ip(unsigned long ip)24static inline void local_bh_enable_ip(unsigned long ip) 25 { 26 __local_bh_enable_ip(ip, SOFTIRQ_DISABLE_OFFSET); 27 } 28 local_bh_enable(void)29static inline void local_bh_enable(void) 30 { 31 __local_bh_enable_ip(_THIS_IP_, SOFTIRQ_DISABLE_OFFSET); 32 } 33 34 #endif /* _LINUX_BH_H */ 35