perf bpf-utils: Constify bpil_array_desc
authorIan Rogers <irogers@google.com>
Tue, 2 Sep 2025 18:17:12 +0000 (11:17 -0700)
committerNamhyung Kim <namhyung@kernel.org>
Tue, 2 Sep 2025 21:55:20 +0000 (14:55 -0700)
The array's contents is a compile time constant. Constify to make the
code more intention revealing and avoid unintended errors.

Reviewed-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Ian Rogers <irogers@google.com>
Link: https://lore.kernel.org/r/20250902181713.309797-3-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/perf/util/bpf-utils.c

index 80b1d2b3729ba49e9c8ae32a7057fccb8491de3c..64a55834469645dc45f66c880f63c9401b3a0286 100644 (file)
@@ -20,7 +20,7 @@ struct bpil_array_desc {
                                 */
 };
 
-static struct bpil_array_desc bpil_array_desc[] = {
+static const struct bpil_array_desc bpil_array_desc[] = {
        [PERF_BPIL_JITED_INSNS] = {
                offsetof(struct bpf_prog_info, jited_prog_insns),
                offsetof(struct bpf_prog_info, jited_prog_len),
@@ -129,12 +129,10 @@ get_bpf_prog_info_linear(int fd, __u64 arrays)
 
        /* step 2: calculate total size of all arrays */
        for (i = PERF_BPIL_FIRST_ARRAY; i < PERF_BPIL_LAST_ARRAY; ++i) {
+               const struct bpil_array_desc *desc = &bpil_array_desc[i];
                bool include_array = (arrays & (1UL << i)) > 0;
-               struct bpil_array_desc *desc;
                __u32 count, size;
 
-               desc = bpil_array_desc + i;
-
                /* kernel is too old to support this field */
                if (info_len < desc->array_offset + sizeof(__u32) ||
                    info_len < desc->count_offset + sizeof(__u32) ||
@@ -163,13 +161,12 @@ get_bpf_prog_info_linear(int fd, __u64 arrays)
        ptr = info_linear->data;
 
        for (i = PERF_BPIL_FIRST_ARRAY; i < PERF_BPIL_LAST_ARRAY; ++i) {
-               struct bpil_array_desc *desc;
+               const struct bpil_array_desc *desc = &bpil_array_desc[i];
                __u32 count, size;
 
                if ((arrays & (1UL << i)) == 0)
                        continue;
 
-               desc  = bpil_array_desc + i;
                count = bpf_prog_info_read_offset_u32(&info, desc->count_offset);
                size  = bpf_prog_info_read_offset_u32(&info, desc->size_offset);
                bpf_prog_info_set_offset_u32(&info_linear->info,
@@ -192,13 +189,12 @@ get_bpf_prog_info_linear(int fd, __u64 arrays)
 
        /* step 6: verify the data */
        for (i = PERF_BPIL_FIRST_ARRAY; i < PERF_BPIL_LAST_ARRAY; ++i) {
-               struct bpil_array_desc *desc;
+               const struct bpil_array_desc *desc = &bpil_array_desc[i];
                __u32 v1, v2;
 
                if ((arrays & (1UL << i)) == 0)
                        continue;
 
-               desc = bpil_array_desc + i;
                v1 = bpf_prog_info_read_offset_u32(&info, desc->count_offset);
                v2 = bpf_prog_info_read_offset_u32(&info_linear->info,
                                                   desc->count_offset);
@@ -224,13 +220,12 @@ void bpil_addr_to_offs(struct perf_bpil *info_linear)
        int i;
 
        for (i = PERF_BPIL_FIRST_ARRAY; i < PERF_BPIL_LAST_ARRAY; ++i) {
-               struct bpil_array_desc *desc;
+               const struct bpil_array_desc *desc = &bpil_array_desc[i];
                __u64 addr, offs;
 
                if ((info_linear->arrays & (1UL << i)) == 0)
                        continue;
 
-               desc = bpil_array_desc + i;
                addr = bpf_prog_info_read_offset_u64(&info_linear->info,
                                                     desc->array_offset);
                offs = addr - ptr_to_u64(info_linear->data);
@@ -244,13 +239,12 @@ void bpil_offs_to_addr(struct perf_bpil *info_linear)
        int i;
 
        for (i = PERF_BPIL_FIRST_ARRAY; i < PERF_BPIL_LAST_ARRAY; ++i) {
-               struct bpil_array_desc *desc;
+               const struct bpil_array_desc *desc = &bpil_array_desc[i];
                __u64 addr, offs;
 
                if ((info_linear->arrays & (1UL << i)) == 0)
                        continue;
 
-               desc = bpil_array_desc + i;
                offs = bpf_prog_info_read_offset_u64(&info_linear->info,
                                                     desc->array_offset);
                addr = offs + ptr_to_u64(info_linear->data);