bpf: support access variable length array of integer type
After this commit:
bpf: Support variable length array in tracing programs (9c5f8a1008)
Trace programs can access variable length array, but for structure
type. This patch adds support for integer type.
Example:
Hook load_balance
struct sched_domain {
...
unsigned long span[];
}
The access: sd->span[0].
Co-developed-by: Chengming Zhou <zhouchengming@bytedance.com>
Signed-off-by: Chengming Zhou <zhouchengming@bytedance.com>
Signed-off-by: Feng Zhou <zhoufeng.zf@bytedance.com>
Link: https://lore.kernel.org/r/20230420032735.27760-2-zhoufeng.zf@bytedance.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
committed by
Alexei Starovoitov
parent
2ddade3229
commit
2569c7b872
+5
-3
@@ -6157,11 +6157,13 @@ again:
|
||||
if (off < moff)
|
||||
goto error;
|
||||
|
||||
/* Only allow structure for now, can be relaxed for
|
||||
* other types later.
|
||||
*/
|
||||
/* allow structure and integer */
|
||||
t = btf_type_skip_modifiers(btf, array_elem->type,
|
||||
NULL);
|
||||
|
||||
if (btf_type_is_int(t))
|
||||
return WALK_SCALAR;
|
||||
|
||||
if (!btf_type_is_struct(t))
|
||||
goto error;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user