aboutsummaryrefslogtreecommitdiff
path: root/net/core/kmap_skb.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.osdl.org>2006-12-04 10:37:06 -0800
committerLinus Torvalds <torvalds@woody.osdl.org>2006-12-04 10:37:06 -0800
commit9b8ab9f6c37c610feea20edfb357a3b8a43d39bd (patch)
tree02d18c920a03a600e915d66d6a471d900857b3ac /net/core/kmap_skb.h
parent12472b4165a21f5415ff4f60f8f46311a6b7b9ac (diff)
parentf23f6e08c47acbdd20e9c49a79da8c404ea168e1 (diff)
Merge branch 'for-linus4' of master.kernel.org:/pub/scm/linux/kernel/git/viro/bird
* 'for-linus4' of master.kernel.org:/pub/scm/linux/kernel/git/viro/bird: [PATCH] severing poll.h -> mm.h [PATCH] severing skbuff.h -> mm.h [PATCH] severing skbuff.h -> poll.h [PATCH] severing skbuff.h -> highmem.h [PATCH] severing uaccess.h -> sched.h [PATCH] severing fs.h, radix-tree.h -> sched.h [PATCH] severing module.h->sched.h
Diffstat (limited to 'net/core/kmap_skb.h')
-rw-r--r--net/core/kmap_skb.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/net/core/kmap_skb.h b/net/core/kmap_skb.h
new file mode 100644
index 00000000000..283c2b993fb
--- /dev/null
+++ b/net/core/kmap_skb.h
@@ -0,0 +1,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
+}