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