1From fe69a1b1b6ed9ffc2c578c63f526026a8ab74f0c Mon Sep 17 00:00:00 2001
2From: Anders Roxell <anders.roxell@linaro.org>
3Date: Thu, 9 Nov 2023 18:43:28 +0100
4Subject: [PATCH] selftests: bpf: xskxceiver: ksft_print_msg: fix format type
5 error
6
7Crossbuilding selftests/bpf for architecture arm64, format specifies
8type error show up like.
9
10xskxceiver.c:912:34: error: format specifies type 'int' but the argument
11has type '__u64' (aka 'unsigned long long') [-Werror,-Wformat]
12 ksft_print_msg("[%s] expected meta_count [%d], got meta_count [%d]\n",
13                                                                ~~
14                                                                %llu
15                __func__, pkt->pkt_nb, meta->count);
16                                       ^~~~~~~~~~~
17xskxceiver.c:929:55: error: format specifies type 'unsigned long long' but
18 the argument has type 'u64' (aka 'unsigned long') [-Werror,-Wformat]
19 ksft_print_msg("Frag invalid addr: %llx len: %u\n", addr, len);
20                                    ~~~~             ^~~~
21
22Fixing the issues by casting to (unsigned long long) and changing the
23specifiers to be %llu from %d and %u, since with u64s it might be %llx
24or %lx, depending on architecture.
25
26Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
27Link: https://lore.kernel.org/r/20231109174328.1774571-1-anders.roxell@linaro.org
28Signed-off-by: Alexei Starovoitov <ast@kernel.org>
29---
30 tools/testing/selftests/bpf/xskxceiver.c | 19 ++++++++++++-------
31 1 file changed, 12 insertions(+), 7 deletions(-)
32
33diff --git a/tools/testing/selftests/bpf/xskxceiver.c b/tools/testing/selftests/bpf/xskxceiver.c
34index 591ca9637b23..b604c570309a 100644
35--- a/tools/testing/selftests/bpf/xskxceiver.c
36+++ b/tools/testing/selftests/bpf/xskxceiver.c
37@@ -908,8 +908,9 @@ static bool is_metadata_correct(struct pkt *pkt, void *buffer, u64 addr)
38 	struct xdp_info *meta = data - sizeof(struct xdp_info);
39 
40 	if (meta->count != pkt->pkt_nb) {
41-		ksft_print_msg("[%s] expected meta_count [%d], got meta_count [%d]\n",
42-			       __func__, pkt->pkt_nb, meta->count);
43+		ksft_print_msg("[%s] expected meta_count [%d], got meta_count [%llu]\n",
44+			       __func__, pkt->pkt_nb,
45+			       (unsigned long long)meta->count);
46 		return false;
47 	}
48 
49@@ -926,11 +927,13 @@ static bool is_frag_valid(struct xsk_umem_info *umem, u64 addr, u32 len, u32 exp
50 
51 	if (addr >= umem->num_frames * umem->frame_size ||
52 	    addr + len > umem->num_frames * umem->frame_size) {
53-		ksft_print_msg("Frag invalid addr: %llx len: %u\n", addr, len);
54+		ksft_print_msg("Frag invalid addr: %llx len: %u\n",
55+			       (unsigned long long)addr, len);
56 		return false;
57 	}
58 	if (!umem->unaligned_mode && addr % umem->frame_size + len > umem->frame_size) {
59-		ksft_print_msg("Frag crosses frame boundary addr: %llx len: %u\n", addr, len);
60+		ksft_print_msg("Frag crosses frame boundary addr: %llx len: %u\n",
61+			       (unsigned long long)addr, len);
62 		return false;
63 	}
64 
65@@ -1029,7 +1032,8 @@ static int complete_pkts(struct xsk_socket_info *xsk, int batch_size)
66 			u64 addr = *xsk_ring_cons__comp_addr(&xsk->umem->cq, idx + rcvd - 1);
67 
68 			ksft_print_msg("[%s] Too many packets completed\n", __func__);
69-			ksft_print_msg("Last completion address: %llx\n", addr);
70+			ksft_print_msg("Last completion address: %llx\n",
71+				       (unsigned long long)addr);
72 			return TEST_FAILURE;
73 		}
74 
75@@ -1513,8 +1517,9 @@ static int validate_tx_invalid_descs(struct ifobject *ifobject)
76 	}
77 
78 	if (stats.tx_invalid_descs != ifobject->xsk->pkt_stream->nb_pkts / 2) {
79-		ksft_print_msg("[%s] tx_invalid_descs incorrect. Got [%u] expected [%u]\n",
80-			       __func__, stats.tx_invalid_descs,
81+		ksft_print_msg("[%s] tx_invalid_descs incorrect. Got [%llu] expected [%u]\n",
82+			       __func__,
83+			       (unsigned long long)stats.tx_invalid_descs,
84 			       ifobject->xsk->pkt_stream->nb_pkts);
85 		return TEST_FAILURE;
86 	}
87-- 
882.34.1
89
90