20 lines
		
	
	
	
		
			360 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			20 lines
		
	
	
	
		
			360 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
|   | #include <linux/highmem.h>
 | ||
|  | 
 | ||
|  | static inline void *kmap_skb_frag(const skb_frag_t *frag) | ||
|  | { | ||
|  | #ifdef CONFIG_HIGHMEM
 | ||
|  | 	BUG_ON(in_irq()); | ||
|  | 
 | ||
|  | 	local_bh_disable(); | ||
|  | #endif
 | ||
|  | 	return kmap_atomic(frag->page, KM_SKB_DATA_SOFTIRQ); | ||
|  | } | ||
|  | 
 | ||
|  | static inline void kunmap_skb_frag(void *vaddr) | ||
|  | { | ||
|  | 	kunmap_atomic(vaddr, KM_SKB_DATA_SOFTIRQ); | ||
|  | #ifdef CONFIG_HIGHMEM
 | ||
|  | 	local_bh_enable(); | ||
|  | #endif
 | ||
|  | } |