2006-10-19 20:08:53 +00:00
|
|
|
#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
|
2011-08-22 23:44:58 +00:00
|
|
|
return kmap_atomic(skb_frag_page(frag), KM_SKB_DATA_SOFTIRQ);
|
2006-10-19 20:08:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
static inline void kunmap_skb_frag(void *vaddr)
|
|
|
|
{
|
|
|
|
kunmap_atomic(vaddr, KM_SKB_DATA_SOFTIRQ);
|
|
|
|
#ifdef CONFIG_HIGHMEM
|
|
|
|
local_bh_enable();
|
|
|
|
#endif
|
|
|
|
}
|