summaryrefslogtreecommitdiffstats
path: root/kernel/bpf/map_in_map.c
diff options
context:
space:
mode:
authorMartin KaFai Lau2017-06-28 08:08:34 +0200
committerDavid S. Miller2017-06-29 19:13:25 +0200
commit14dc6f04f49dc12614d7e90928b495b8d73cd471 (patch)
tree159ebddef04be2ae417c503ab46593be570c680f /kernel/bpf/map_in_map.c
parentnet: stmmac: Add additional registers for dwmac1000_dma ethtool (diff)
downloadkernel-qcow2-linux-14dc6f04f49dc12614d7e90928b495b8d73cd471.tar.gz
kernel-qcow2-linux-14dc6f04f49dc12614d7e90928b495b8d73cd471.tar.xz
kernel-qcow2-linux-14dc6f04f49dc12614d7e90928b495b8d73cd471.zip
bpf: Add syscall lookup support for fd array and htab
This patch allows userspace to do BPF_MAP_LOOKUP_ELEM on BPF_MAP_TYPE_PROG_ARRAY, BPF_MAP_TYPE_ARRAY_OF_MAPS and BPF_MAP_TYPE_HASH_OF_MAPS. The lookup returns a prog-id or map-id to the userspace. The userspace can then use the BPF_PROG_GET_FD_BY_ID or BPF_MAP_GET_FD_BY_ID to get a fd. Signed-off-by: Martin KaFai Lau <kafai@fb.com> Acked-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'kernel/bpf/map_in_map.c')
-rw-r--r--kernel/bpf/map_in_map.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/kernel/bpf/map_in_map.c b/kernel/bpf/map_in_map.c
index 59bcdf821ae4..1da574612bea 100644
--- a/kernel/bpf/map_in_map.c
+++ b/kernel/bpf/map_in_map.c
@@ -95,3 +95,8 @@ void bpf_map_fd_put_ptr(void *ptr)
*/
bpf_map_put(ptr);
}
+
+u32 bpf_map_fd_sys_lookup_elem(void *ptr)
+{
+ return ((struct bpf_map *)ptr)->id;
+}