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