1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#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 }