Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
An ipvlan bug fix in 'net' conflicted with the abstraction away of the IPV6 specific support in 'net-next'. Similarly, a bug fix for mlx5 in 'net' conflicted with the flow action conversion in 'net-next'. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -358,6 +358,20 @@ static char **parse_bytes(char **argv, const char *name, unsigned char *val,
|
||||
return argv + i;
|
||||
}
|
||||
|
||||
/* on per cpu maps we must copy the provided value on all value instances */
|
||||
static void fill_per_cpu_value(struct bpf_map_info *info, void *value)
|
||||
{
|
||||
unsigned int i, n, step;
|
||||
|
||||
if (!map_is_per_cpu(info->type))
|
||||
return;
|
||||
|
||||
n = get_possible_cpus();
|
||||
step = round_up(info->value_size, 8);
|
||||
for (i = 1; i < n; i++)
|
||||
memcpy(value + i * step, value, info->value_size);
|
||||
}
|
||||
|
||||
static int parse_elem(char **argv, struct bpf_map_info *info,
|
||||
void *key, void *value, __u32 key_size, __u32 value_size,
|
||||
__u32 *flags, __u32 **value_fd)
|
||||
@@ -440,6 +454,8 @@ static int parse_elem(char **argv, struct bpf_map_info *info,
|
||||
argv = parse_bytes(argv, "value", value, value_size);
|
||||
if (!argv)
|
||||
return -1;
|
||||
|
||||
fill_per_cpu_value(info, value);
|
||||
}
|
||||
|
||||
return parse_elem(argv, info, key, NULL, key_size, value_size,
|
||||
@@ -511,10 +527,9 @@ static int show_map_close_json(int fd, struct bpf_map_info *info)
|
||||
jsonw_uint_field(json_wtr, "owner_prog_type",
|
||||
prog_type);
|
||||
}
|
||||
if (atoi(owner_jited))
|
||||
jsonw_bool_field(json_wtr, "owner_jited", true);
|
||||
else
|
||||
jsonw_bool_field(json_wtr, "owner_jited", false);
|
||||
if (owner_jited)
|
||||
jsonw_bool_field(json_wtr, "owner_jited",
|
||||
!!atoi(owner_jited));
|
||||
|
||||
free(owner_prog_type);
|
||||
free(owner_jited);
|
||||
@@ -567,7 +582,8 @@ static int show_map_close_plain(int fd, struct bpf_map_info *info)
|
||||
char *owner_prog_type = get_fdinfo(fd, "owner_prog_type");
|
||||
char *owner_jited = get_fdinfo(fd, "owner_jited");
|
||||
|
||||
printf("\n\t");
|
||||
if (owner_prog_type || owner_jited)
|
||||
printf("\n\t");
|
||||
if (owner_prog_type) {
|
||||
unsigned int prog_type = atoi(owner_prog_type);
|
||||
|
||||
@@ -577,10 +593,9 @@ static int show_map_close_plain(int fd, struct bpf_map_info *info)
|
||||
else
|
||||
printf("owner_prog_type %d ", prog_type);
|
||||
}
|
||||
if (atoi(owner_jited))
|
||||
printf("owner jited");
|
||||
else
|
||||
printf("owner not jited");
|
||||
if (owner_jited)
|
||||
printf("owner%s jited",
|
||||
atoi(owner_jited) ? "" : " not");
|
||||
|
||||
free(owner_prog_type);
|
||||
free(owner_jited);
|
||||
|
Reference in New Issue
Block a user