2022-04-22 19:28:33

by Alexander Lobakin

[permalink] [raw]
Subject: [PATCH v2 bpf 10/11] samples/bpf: fix -Wsequence-point

In some libc implementations, CPU_SET() may utilize its first
argument several times. When combined with a post-increment,
it leads to:

samples/bpf/test_lru_dist.c:233:36: warning: operation on 'next_to_try' may be undefined [-Wsequence-point]
233 | CPU_SET(next_to_try++, &cpuset);
| ^

Macros must always define local copies of arguments to avoid
reusing, but since several libc versions already and still have
that, split the sentence into two standalone operations to fix
this.

Fixes: 5db58faf989f ("bpf: Add tests for the LRU bpf_htab")
Acked-by: Song Liu <[email protected]>
Signed-off-by: Alexander Lobakin <[email protected]>
---
samples/bpf/test_lru_dist.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/samples/bpf/test_lru_dist.c b/samples/bpf/test_lru_dist.c
index 75e877853596..d09ccd5370e8 100644
--- a/samples/bpf/test_lru_dist.c
+++ b/samples/bpf/test_lru_dist.c
@@ -230,7 +230,8 @@ static int sched_next_online(int pid, int next_to_try)

while (next_to_try < nr_cpus) {
CPU_ZERO(&cpuset);
- CPU_SET(next_to_try++, &cpuset);
+ CPU_SET(next_to_try, &cpuset);
+ next_to_try++;
if (!sched_setaffinity(pid, sizeof(cpuset), &cpuset))
break;
}
--
2.36.0