OSDN Git Service

bpf: Clarify data_len param in bpf_snprintf and bpf_seq_printf comments
authorDave Marchevsky <davemarchevsky@fb.com>
Fri, 17 Sep 2021 18:29:11 +0000 (11:29 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 17 Sep 2021 21:02:06 +0000 (14:02 -0700)
Since the data_len in these two functions is a byte len of the preceding
u64 *data array, it must always be a multiple of 8. If this isn't the
case both helpers error out, so let's make the requirement explicit so
users don't need to infer it.

Signed-off-by: Dave Marchevsky <davemarchevsky@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20210917182911.2426606-10-davemarchevsky@fb.com
include/uapi/linux/bpf.h
tools/include/uapi/linux/bpf.h

index 98ca79a..6fc59d6 100644 (file)
@@ -4046,7 +4046,7 @@ union bpf_attr {
  *             arguments. The *data* are a **u64** array and corresponding format string
  *             values are stored in the array. For strings and pointers where pointees
  *             are accessed, only the pointer values are stored in the *data* array.
- *             The *data_len* is the size of *data* in bytes.
+ *             The *data_len* is the size of *data* in bytes - must be a multiple of 8.
  *
  *             Formats **%s**, **%p{i,I}{4,6}** requires to read kernel memory.
  *             Reading kernel memory may fail due to either invalid address or
@@ -4751,7 +4751,8 @@ union bpf_attr {
  *             Each format specifier in **fmt** corresponds to one u64 element
  *             in the **data** array. For strings and pointers where pointees
  *             are accessed, only the pointer values are stored in the *data*
- *             array. The *data_len* is the size of *data* in bytes.
+ *             array. The *data_len* is the size of *data* in bytes - must be
+ *             a multiple of 8.
  *
  *             Formats **%s** and **%p{i,I}{4,6}** require to read kernel
  *             memory. Reading kernel memory may fail due to either invalid
index 98ca79a..6fc59d6 100644 (file)
@@ -4046,7 +4046,7 @@ union bpf_attr {
  *             arguments. The *data* are a **u64** array and corresponding format string
  *             values are stored in the array. For strings and pointers where pointees
  *             are accessed, only the pointer values are stored in the *data* array.
- *             The *data_len* is the size of *data* in bytes.
+ *             The *data_len* is the size of *data* in bytes - must be a multiple of 8.
  *
  *             Formats **%s**, **%p{i,I}{4,6}** requires to read kernel memory.
  *             Reading kernel memory may fail due to either invalid address or
@@ -4751,7 +4751,8 @@ union bpf_attr {
  *             Each format specifier in **fmt** corresponds to one u64 element
  *             in the **data** array. For strings and pointers where pointees
  *             are accessed, only the pointer values are stored in the *data*
- *             array. The *data_len* is the size of *data* in bytes.
+ *             array. The *data_len* is the size of *data* in bytes - must be
+ *             a multiple of 8.
  *
  *             Formats **%s** and **%p{i,I}{4,6}** require to read kernel
  *             memory. Reading kernel memory may fail due to either invalid