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