]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
bpf: Swap the order of checking prog_info and map_info
authorMartin KaFai Lau <kafai@fb.com>
Wed, 27 Sep 2017 21:37:55 +0000 (14:37 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 29 Sep 2017 05:17:05 +0000 (06:17 +0100)
This patch swaps the checking order.  It now checks the map_info
first and then prog_info.  It is a prep work for adding
test to the newly added fields (the map_ids of prog_info field
in particular).

Signed-off-by: Martin KaFai Lau <kafai@fb.com>
Acked-by: Alexei Starovoitov <ast@fb.com>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/bpf/test_progs.c

index 11ee25cea227ba654c30c5b0560c6d8e02659951..31ae27dc8d0478206112584a906d50d6158a8fa8 100644 (file)
@@ -316,6 +316,36 @@ static void test_bpf_obj_id(void)
                        error_cnt++;
                assert(!err);
 
+               /* Insert a magic value to the map */
+               map_fds[i] = bpf_find_map(__func__, objs[i], "test_map_id");
+               assert(map_fds[i] >= 0);
+               err = bpf_map_update_elem(map_fds[i], &array_key,
+                                         &array_magic_value, 0);
+               assert(!err);
+
+               /* Check getting map info */
+               info_len = sizeof(struct bpf_map_info) * 2;
+               bzero(&map_infos[i], info_len);
+               err = bpf_obj_get_info_by_fd(map_fds[i], &map_infos[i],
+                                            &info_len);
+               if (CHECK(err ||
+                         map_infos[i].type != BPF_MAP_TYPE_ARRAY ||
+                         map_infos[i].key_size != sizeof(__u32) ||
+                         map_infos[i].value_size != sizeof(__u64) ||
+                         map_infos[i].max_entries != 1 ||
+                         map_infos[i].map_flags != 0 ||
+                         info_len != sizeof(struct bpf_map_info),
+                         "get-map-info(fd)",
+                         "err %d errno %d type %d(%d) info_len %u(%lu) key_size %u value_size %u max_entries %u map_flags %X\n",
+                         err, errno,
+                         map_infos[i].type, BPF_MAP_TYPE_ARRAY,
+                         info_len, sizeof(struct bpf_map_info),
+                         map_infos[i].key_size,
+                         map_infos[i].value_size,
+                         map_infos[i].max_entries,
+                         map_infos[i].map_flags))
+                       goto done;
+
                /* Check getting prog info */
                info_len = sizeof(struct bpf_prog_info) * 2;
                bzero(&prog_infos[i], info_len);
@@ -347,34 +377,6 @@ static void test_bpf_obj_id(void)
                          !!memcmp(xlated_insns, zeros, sizeof(zeros))))
                        goto done;
 
-               map_fds[i] = bpf_find_map(__func__, objs[i], "test_map_id");
-               assert(map_fds[i] >= 0);
-               err = bpf_map_update_elem(map_fds[i], &array_key,
-                                         &array_magic_value, 0);
-               assert(!err);
-
-               /* Check getting map info */
-               info_len = sizeof(struct bpf_map_info) * 2;
-               bzero(&map_infos[i], info_len);
-               err = bpf_obj_get_info_by_fd(map_fds[i], &map_infos[i],
-                                            &info_len);
-               if (CHECK(err ||
-                         map_infos[i].type != BPF_MAP_TYPE_ARRAY ||
-                         map_infos[i].key_size != sizeof(__u32) ||
-                         map_infos[i].value_size != sizeof(__u64) ||
-                         map_infos[i].max_entries != 1 ||
-                         map_infos[i].map_flags != 0 ||
-                         info_len != sizeof(struct bpf_map_info),
-                         "get-map-info(fd)",
-                         "err %d errno %d type %d(%d) info_len %u(%lu) key_size %u value_size %u max_entries %u map_flags %X\n",
-                         err, errno,
-                         map_infos[i].type, BPF_MAP_TYPE_ARRAY,
-                         info_len, sizeof(struct bpf_map_info),
-                         map_infos[i].key_size,
-                         map_infos[i].value_size,
-                         map_infos[i].max_entries,
-                         map_infos[i].map_flags))
-                       goto done;
        }
 
        /* Check bpf_prog_get_next_id() */