]> git.baikalelectronics.ru Git - kernel.git/commit
bpf: Introduce bpf_sysctl_{get,set}_new_value helpers
authorAndrey Ignatov <rdna@fb.com>
Fri, 8 Mar 2019 02:38:43 +0000 (18:38 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 12 Apr 2019 20:54:58 +0000 (13:54 -0700)
commit6fc39fa031a0d8370da6915795c6d4452d0ac203
tree85e2cff7f791e8e98dfcca646211ccc1278de61e
parentb1aa533fffa6d2c38c107650924d46225da148bf
bpf: Introduce bpf_sysctl_{get,set}_new_value helpers

Add helpers to work with new value being written to sysctl by user
space.

bpf_sysctl_get_new_value() copies value being written to sysctl into
provided buffer.

bpf_sysctl_set_new_value() overrides new value being written by user
space with a one from provided buffer. Buffer should contain string
representation of the value, similar to what can be seen in /proc/sys/.

Both helpers can be used only on sysctl write.

File position matters and can be managed by an interface that will be
introduced separately. E.g. if user space calls sys_write to a file in
/proc/sys/ at file position = X, where X > 0, then the value set by
bpf_sysctl_set_new_value() will be written starting from X. If program
wants to override whole value with specified buffer, file position has
to be set to zero.

Documentation for the new helpers is provided in bpf.h UAPI.

Signed-off-by: Andrey Ignatov <rdna@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
fs/proc/proc_sysctl.c
include/linux/bpf-cgroup.h
include/linux/filter.h
include/uapi/linux/bpf.h
kernel/bpf/cgroup.c