Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

KVM: selftests: Fix GUEST_PRINTF() format warnings in ARM code

Fix a pile of -Wformat warnings in the KVM ARM selftests code, almost all
of which are benign "long" versus "long long" issues (selftests are 64-bit
only, and the guest printf code treats "ll" the same as "l"). The code
itself isn't problematic, but the warnings make it impossible to build ARM
selftests with -Werror, which does detect real issues from time to time.

Opportunistically have GUEST_ASSERT_BITMAP_REG() interpret set_expected,
which is a bool, as an unsigned decimal value, i.e. have it print '0' or
'1' instead of '0x0' or '0x1'.

Signed-off-by: Sean Christopherson <seanjc@google.com>
Tested-by: Zenghui Yu <yuzenghui@huawei.com>
Link: https://lore.kernel.org/r/20240202234603.366925-1-seanjc@google.com
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>

authored by

Sean Christopherson and committed by
Oliver Upton
06fdd894 a02395d0

+12 -12
+2 -2
tools/testing/selftests/kvm/aarch64/arch_timer.c
··· 158 158 159 159 /* Basic 'timer condition met' check */ 160 160 __GUEST_ASSERT(xcnt >= cval, 161 - "xcnt = 0x%llx, cval = 0x%llx, xcnt_diff_us = 0x%llx", 161 + "xcnt = 0x%lx, cval = 0x%lx, xcnt_diff_us = 0x%lx", 162 162 xcnt, cval, xcnt_diff_us); 163 - __GUEST_ASSERT(xctl & CTL_ISTATUS, "xcnt = 0x%llx", xcnt); 163 + __GUEST_ASSERT(xctl & CTL_ISTATUS, "xcnt = 0x%lx", xcnt); 164 164 165 165 WRITE_ONCE(shared_data->nr_iter, shared_data->nr_iter + 1); 166 166 }
+1 -1
tools/testing/selftests/kvm/aarch64/debug-exceptions.c
··· 365 365 366 366 static void guest_ss_handler(struct ex_regs *regs) 367 367 { 368 - __GUEST_ASSERT(ss_idx < 4, "Expected index < 4, got '%u'", ss_idx); 368 + __GUEST_ASSERT(ss_idx < 4, "Expected index < 4, got '%lu'", ss_idx); 369 369 ss_addr[ss_idx++] = regs->pc; 370 370 regs->pstate |= SPSR_SS; 371 371 }
+2 -2
tools/testing/selftests/kvm/aarch64/hypercalls.c
··· 105 105 case TEST_STAGE_HVC_IFACE_FEAT_DISABLED: 106 106 case TEST_STAGE_HVC_IFACE_FALSE_INFO: 107 107 __GUEST_ASSERT(res.a0 == SMCCC_RET_NOT_SUPPORTED, 108 - "a0 = 0x%lx, func_id = 0x%x, arg1 = 0x%llx, stage = %u", 108 + "a0 = 0x%lx, func_id = 0x%x, arg1 = 0x%lx, stage = %u", 109 109 res.a0, hc_info->func_id, hc_info->arg1, stage); 110 110 break; 111 111 case TEST_STAGE_HVC_IFACE_FEAT_ENABLED: 112 112 __GUEST_ASSERT(res.a0 != SMCCC_RET_NOT_SUPPORTED, 113 - "a0 = 0x%lx, func_id = 0x%x, arg1 = 0x%llx, stage = %u", 113 + "a0 = 0x%lx, func_id = 0x%x, arg1 = 0x%lx, stage = %u", 114 114 res.a0, hc_info->func_id, hc_info->arg1, stage); 115 115 break; 116 116 default:
+1 -1
tools/testing/selftests/kvm/aarch64/page_fault_test.c
··· 292 292 293 293 static void no_dabt_handler(struct ex_regs *regs) 294 294 { 295 - GUEST_FAIL("Unexpected dabt, far_el1 = 0x%llx", read_sysreg(far_el1)); 295 + GUEST_FAIL("Unexpected dabt, far_el1 = 0x%lx", read_sysreg(far_el1)); 296 296 } 297 297 298 298 static void no_iabt_handler(struct ex_regs *regs)
+6 -6
tools/testing/selftests/kvm/aarch64/vpmu_counter_access.c
··· 195 195 \ 196 196 if (set_expected) \ 197 197 __GUEST_ASSERT((_tval & mask), \ 198 - "tval: 0x%lx; mask: 0x%lx; set_expected: 0x%lx", \ 198 + "tval: 0x%lx; mask: 0x%lx; set_expected: %u", \ 199 199 _tval, mask, set_expected); \ 200 200 else \ 201 201 __GUEST_ASSERT(!(_tval & mask), \ 202 - "tval: 0x%lx; mask: 0x%lx; set_expected: 0x%lx", \ 202 + "tval: 0x%lx; mask: 0x%lx; set_expected: %u", \ 203 203 _tval, mask, set_expected); \ 204 204 } 205 205 ··· 286 286 acc->write_typer(pmc_idx, write_data); 287 287 read_data = acc->read_typer(pmc_idx); 288 288 __GUEST_ASSERT(read_data == write_data, 289 - "pmc_idx: 0x%lx; acc_idx: 0x%lx; read_data: 0x%lx; write_data: 0x%lx", 289 + "pmc_idx: 0x%x; acc_idx: 0x%lx; read_data: 0x%lx; write_data: 0x%lx", 290 290 pmc_idx, PMC_ACC_TO_IDX(acc), read_data, write_data); 291 291 292 292 /* ··· 297 297 298 298 /* The count value must be 0, as it is disabled and reset */ 299 299 __GUEST_ASSERT(read_data == 0, 300 - "pmc_idx: 0x%lx; acc_idx: 0x%lx; read_data: 0x%lx", 300 + "pmc_idx: 0x%x; acc_idx: 0x%lx; read_data: 0x%lx", 301 301 pmc_idx, PMC_ACC_TO_IDX(acc), read_data); 302 302 303 303 write_data = read_data + pmc_idx + 0x12345; 304 304 acc->write_cntr(pmc_idx, write_data); 305 305 read_data = acc->read_cntr(pmc_idx); 306 306 __GUEST_ASSERT(read_data == write_data, 307 - "pmc_idx: 0x%lx; acc_idx: 0x%lx; read_data: 0x%lx; write_data: 0x%lx", 307 + "pmc_idx: 0x%x; acc_idx: 0x%lx; read_data: 0x%lx; write_data: 0x%lx", 308 308 pmc_idx, PMC_ACC_TO_IDX(acc), read_data, write_data); 309 309 } 310 310 ··· 379 379 int i, pmc; 380 380 381 381 __GUEST_ASSERT(expected_pmcr_n <= ARMV8_PMU_MAX_GENERAL_COUNTERS, 382 - "Expected PMCR.N: 0x%lx; ARMv8 general counters: 0x%lx", 382 + "Expected PMCR.N: 0x%lx; ARMv8 general counters: 0x%x", 383 383 expected_pmcr_n, ARMV8_PMU_MAX_GENERAL_COUNTERS); 384 384 385 385 pmcr = read_sysreg(pmcr_el0);