bpf: let bpf_list_add_device() take the device list directly

parent 7da502de
......@@ -3112,7 +3112,7 @@ static int bpf_device_cgroup_prepare(struct cgroup_ops *ops,
if (ret < 0)
return log_error_errno(-1, EINVAL, "Failed to parse device string %s=%s", key, val);
ret = bpf_list_add_device(conf, &device_item);
ret = bpf_list_add_device(&conf->devices, &device_item);
if (ret < 0)
return -1;
return 0;
......
......@@ -467,16 +467,16 @@ void bpf_device_program_free(struct cgroup_ops *ops)
}
}
int bpf_list_add_device(struct lxc_conf *conf, struct device_item *device)
int bpf_list_add_device(struct lxc_list *devices, struct device_item *device)
{
__do_free struct lxc_list *list_elem = NULL;
__do_free struct device_item *new_device = NULL;
struct lxc_list *it;
if (!conf || !device)
if (!devices || !device)
return ret_errno(EINVAL);
lxc_list_for_each(it, &conf->devices) {
lxc_list_for_each(it, devices) {
struct device_item *cur = it->elem;
if (cur->global_rule > LXC_BPF_DEVICE_CGROUP_LOCAL_RULE &&
......@@ -527,7 +527,7 @@ int bpf_list_add_device(struct lxc_conf *conf, struct device_item *device)
return log_error_errno(-1, ENOMEM, "Failed to allocate new device item");
lxc_list_add_elem(list_elem, move_ptr(new_device));
lxc_list_add_tail(&conf->devices, move_ptr(list_elem));
lxc_list_add_tail(devices, move_ptr(list_elem));
return 0;
}
......
......@@ -96,7 +96,8 @@ __hidden extern void bpf_program_free(struct bpf_program *prog);
__hidden extern void bpf_device_program_free(struct cgroup_ops *ops);
__hidden extern bool bpf_devices_cgroup_supported(void);
__hidden extern int bpf_list_add_device(struct lxc_conf *conf, struct device_item *device);
__hidden extern int bpf_list_add_device(struct lxc_list *devices,
struct device_item *device);
__hidden extern bool bpf_cgroup_devices_attach(struct cgroup_ops *ops,
struct lxc_list *devices);
......
......@@ -1222,7 +1222,7 @@ static int lxc_cmd_add_bpf_device_cgroup_callback(int fd, struct lxc_cmd_req *re
if (unified->cgfd_mon < 0)
goto respond;
ret = bpf_list_add_device(conf, device);
ret = bpf_list_add_device(&conf->devices, device);
if (ret < 0)
goto respond;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment