datapath: Backport flex_arrays.
[sliver-openvswitch.git] / datapath / linux / compat / kmemdup.c
1 #ifndef HAVE_KMEMDUP
2
3 #include <linux/slab.h>
4 #include <linux/string.h>
5
6 /**
7  * kmemdup - duplicate region of memory
8  *
9  * @src: memory region to duplicate
10  * @len: memory region length
11  * @gfp: GFP mask to use
12  */
13 void *kmemdup(const void *src, size_t len, gfp_t gfp)
14 {
15         void *p;
16
17         p = kmalloc(len, gfp);
18         if (p)
19                 memcpy(p, src, len);
20         return p;
21 }
22 #endif