36 lines
		
	
	
		
			803 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			803 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0 */
 | |
| #ifndef _LINUX_BH_H
 | |
| #define _LINUX_BH_H
 | |
| 
 | |
| #include <linux/preempt.h>
 | |
| 
 | |
| #ifdef CONFIG_TRACE_IRQFLAGS
 | |
| extern void __local_bh_disable_ip(unsigned long ip, unsigned int cnt);
 | |
| #else
 | |
| static __always_inline void __local_bh_disable_ip(unsigned long ip, unsigned int cnt)
 | |
| {
 | |
| 	preempt_count_add(cnt);
 | |
| 	barrier();
 | |
| }
 | |
| #endif
 | |
| 
 | |
| static inline void local_bh_disable(void)
 | |
| {
 | |
| 	__local_bh_disable_ip(_THIS_IP_, SOFTIRQ_DISABLE_OFFSET);
 | |
| }
 | |
| 
 | |
| extern void _local_bh_enable(void);
 | |
| extern void __local_bh_enable_ip(unsigned long ip, unsigned int cnt);
 | |
| 
 | |
| static inline void local_bh_enable_ip(unsigned long ip)
 | |
| {
 | |
| 	__local_bh_enable_ip(ip, SOFTIRQ_DISABLE_OFFSET);
 | |
| }
 | |
| 
 | |
| static inline void local_bh_enable(void)
 | |
| {
 | |
| 	__local_bh_enable_ip(_THIS_IP_, SOFTIRQ_DISABLE_OFFSET);
 | |
| }
 | |
| 
 | |
| #endif /* _LINUX_BH_H */
 | 
