Thread (2 messages) 2 messages, 2 authors, 2023-08-18

[bpf-next PATCH v1] samples/bpf: Cleanup repetitive swap function

From: Anh Tuan Phan <hidden>
Date: 2023-08-17 15:47:16
Also in: bpf
Subsystem: bpf [general] (safe dynamic programs and tools), bpf [selftests] (test runners & infrastructure), kernel selftest framework, the rest, xdp (express data path) · Maintainers: Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko, Eduard Zingerman, Kumar Kartikeya Dwivedi, Shuah Khan, Linus Torvalds, David S. Miller, Jakub Kicinski, Jesper Dangaard Brouer, John Fastabend

Use the macro version of swap function and move its definition to
bpf_util.h since it is repetitive in some files. This commit also fixes
a warning from coccinelle:

- ./samples/bpf/xdp_sample_user.c:1493:8-9: WARNING opportunity for swap()
- ./samples/bpf/xdp_rxq_info_user.c:435:8-9: WARNING opportunity for swap()

Signed-off-by: Anh Tuan Phan <redacted>
---
 samples/bpf/xdp_rxq_info_user.c        | 12 +-----------
 samples/bpf/xdp_sample_user.c          | 12 +-----------
 tools/testing/selftests/bpf/bpf_util.h |  3 +++
 3 files changed, 5 insertions(+), 22 deletions(-)
diff --git a/samples/bpf/xdp_rxq_info_user.c b/samples/bpf/xdp_rxq_info_user.c
index b95e0ef61f06..862ee370f96a 100644
--- a/samples/bpf/xdp_rxq_info_user.c
+++ b/samples/bpf/xdp_rxq_info_user.c
@@ -426,16 +426,6 @@ static void stats_print(struct stats_record *stats_rec,
 }
 
 
-/* Pointer swap trick */
-static inline void swap(struct stats_record **a, struct stats_record **b)
-{
-	struct stats_record *tmp;
-
-	tmp = *a;
-	*a = *b;
-	*b = tmp;
-}
-
 static void stats_poll(int interval, int action, __u32 cfg_opt)
 {
 	struct stats_record *record, *prev;
@@ -445,7 +435,7 @@ static void stats_poll(int interval, int action, __u32 cfg_opt)
 	stats_collect(record);
 
 	while (1) {
-		swap(&prev, &record);
+		swap(prev, record);
 		stats_collect(record);
 		stats_print(record, prev, action, cfg_opt);
 		sleep(interval);
diff --git a/samples/bpf/xdp_sample_user.c b/samples/bpf/xdp_sample_user.c
index 158682852162..9508bc0c2f2f 100644
--- a/samples/bpf/xdp_sample_user.c
+++ b/samples/bpf/xdp_sample_user.c
@@ -1484,16 +1484,6 @@ static int sample_signal_cb(void)
 	return 0;
 }
 
-/* Pointer swap trick */
-static void swap(struct stats_record **a, struct stats_record **b)
-{
-	struct stats_record *tmp;
-
-	tmp = *a;
-	*a = *b;
-	*b = tmp;
-}
-
 static int sample_timer_cb(int timerfd, struct stats_record **rec,
 			   struct stats_record **prev)
 {
@@ -1505,7 +1495,7 @@ static int sample_timer_cb(int timerfd, struct stats_record **rec,
 	if (ret < 0)
 		return -errno;
 
-	swap(prev, rec);
+	swap(*prev, *rec);
 	ret = sample_stats_collect(*rec);
 	if (ret < 0)
 		return ret;
diff --git a/tools/testing/selftests/bpf/bpf_util.h b/tools/testing/selftests/bpf/bpf_util.h
index 10587a29b967..ba3c44d64d44 100644
--- a/tools/testing/selftests/bpf/bpf_util.h
+++ b/tools/testing/selftests/bpf/bpf_util.h
@@ -8,6 +8,9 @@
 #include <errno.h>
 #include <bpf/libbpf.h> /* libbpf_num_possible_cpus */
 
+#define swap(a, b) \
+	do { typeof(a) __tmp = (a); (a) = (b); (b) = __tmp; } while (0)
+
 static inline unsigned int bpf_num_possible_cpus(void)
 {
 	int possible_cpus = libbpf_num_possible_cpus();
-- 
2.34.1

_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help