On Wed, Nov 28, 2018 at 12:59 PM David Miller <[email protected]> wrote: > > > Cannot cast a u64 to a pointer on 32-bit without an intervening (long) > cast otherwise GCC warns. > > Signed-off-by: David S. Miller <[email protected]>
Acked-by: Song Liu <[email protected]> > -- > > diff --git a/tools/lib/bpf/btf.c b/tools/lib/bpf/btf.c > index eadcf8d..c2d641f 100644 > --- a/tools/lib/bpf/btf.c > +++ b/tools/lib/bpf/btf.c > @@ -466,7 +466,7 @@ int btf__get_from_id(__u32 id, struct btf **btf) > goto exit_free; > } > > - *btf = btf__new((__u8 *)btf_info.btf, btf_info.btf_size, NULL); > + *btf = btf__new((__u8 *)(long)btf_info.btf, btf_info.btf_size, NULL); > if (IS_ERR(*btf)) { > err = PTR_ERR(*btf); > *btf = NULL; > diff --git a/tools/testing/selftests/bpf/test_progs.c > b/tools/testing/selftests/bpf/test_progs.c > index c1e688f6..1c57abb 100644 > --- a/tools/testing/selftests/bpf/test_progs.c > +++ b/tools/testing/selftests/bpf/test_progs.c > @@ -524,7 +524,7 @@ static void test_bpf_obj_id(void) > load_time < now - 60 || load_time > now + 60 || > prog_infos[i].created_by_uid != my_uid || > prog_infos[i].nr_map_ids != 1 || > - *(int *)prog_infos[i].map_ids != map_infos[i].id || > + *(int *)(long)prog_infos[i].map_ids != > map_infos[i].id || > strcmp((char *)prog_infos[i].name, > expected_prog_name), > "get-prog-info(fd)", > "err %d errno %d i %d type %d(%d) info_len %u(%Zu) > jit_enabled %d jited_prog_len %u xlated_prog_len %u jited_prog %d xlated_prog > %d load_time %lu(%lu) uid %u(%u) nr_map_ids %u(%u) map_id %u(%u) name > %s(%s)\n", > @@ -539,7 +539,7 @@ static void test_bpf_obj_id(void) > load_time, now, > prog_infos[i].created_by_uid, my_uid, > prog_infos[i].nr_map_ids, 1, > - *(int *)prog_infos[i].map_ids, map_infos[i].id, > + *(int *)(long)prog_infos[i].map_ids, > map_infos[i].id, > prog_infos[i].name, expected_prog_name)) > goto done; > } > @@ -585,7 +585,7 @@ static void test_bpf_obj_id(void) > bzero(&prog_info, sizeof(prog_info)); > info_len = sizeof(prog_info); > > - saved_map_id = *(int *)(prog_infos[i].map_ids); > + saved_map_id = *(int *)((long)prog_infos[i].map_ids); > prog_info.map_ids = prog_infos[i].map_ids; > prog_info.nr_map_ids = 2; > err = bpf_obj_get_info_by_fd(prog_fd, &prog_info, &info_len); > @@ -593,12 +593,12 @@ static void test_bpf_obj_id(void) > prog_infos[i].xlated_prog_insns = 0; > CHECK(err || info_len != sizeof(struct bpf_prog_info) || > memcmp(&prog_info, &prog_infos[i], info_len) || > - *(int *)prog_info.map_ids != saved_map_id, > + *(int *)(long)prog_info.map_ids != saved_map_id, > "get-prog-info(next_id->fd)", > "err %d errno %d info_len %u(%Zu) memcmp %d map_id > %u(%u)\n", > err, errno, info_len, sizeof(struct bpf_prog_info), > memcmp(&prog_info, &prog_infos[i], info_len), > - *(int *)prog_info.map_ids, saved_map_id); > + *(int *)(long)prog_info.map_ids, saved_map_id); > close(prog_fd); > } > CHECK(nr_id_found != nr_iters,
