On 10.03.20 10:15, Andrew Jones wrote: > Use the format attribute to enable printf format warnings, and > then fix them all. (for x86). > > Signed-off-by: Andrew Jones <drjones@xxxxxxxxxx> Acked-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> > --- > tools/testing/selftests/kvm/demand_paging_test.c | 2 +- > tools/testing/selftests/kvm/include/test_util.h | 3 ++- > tools/testing/selftests/kvm/lib/kvm_util.c | 8 ++++---- > tools/testing/selftests/kvm/x86_64/evmcs_test.c | 4 ++-- > tools/testing/selftests/kvm/x86_64/hyperv_cpuid.c | 2 +- > .../testing/selftests/kvm/x86_64/set_memory_region_test.c | 3 +-- > tools/testing/selftests/kvm/x86_64/state_test.c | 4 ++-- > tools/testing/selftests/kvm/x86_64/svm_vmcall_test.c | 3 +-- > tools/testing/selftests/kvm/x86_64/vmx_dirty_log_test.c | 2 +- > .../selftests/kvm/x86_64/vmx_set_nested_state_test.c | 2 +- > 10 files changed, 16 insertions(+), 17 deletions(-) > > diff --git a/tools/testing/selftests/kvm/demand_paging_test.c b/tools/testing/selftests/kvm/demand_paging_test.c > index c1e326d3ed7f..47654071544c 100644 > --- a/tools/testing/selftests/kvm/demand_paging_test.c > +++ b/tools/testing/selftests/kvm/demand_paging_test.c > @@ -388,7 +388,7 @@ static void run_test(enum vm_guest_mode mode, bool use_uffd, > */ > TEST_ASSERT(guest_num_pages < vm_get_max_gfn(vm), > "Requested more guest memory than address space allows.\n" > - " guest pages: %lx max gfn: %lx vcpus: %d wss: %lx]\n", > + " guest pages: %lx max gfn: %x vcpus: %d wss: %lx]\n", > guest_num_pages, vm_get_max_gfn(vm), vcpus, > vcpu_memory_bytes); > > diff --git a/tools/testing/selftests/kvm/include/test_util.h b/tools/testing/selftests/kvm/include/test_util.h > index c921ea719ae0..07823740227b 100644 > --- a/tools/testing/selftests/kvm/include/test_util.h > +++ b/tools/testing/selftests/kvm/include/test_util.h > @@ -37,7 +37,8 @@ ssize_t test_read(int fd, void *buf, size_t count); > int test_seq_read(const char *path, char **bufp, size_t *sizep); > > void test_assert(bool exp, const char *exp_str, > - const char *file, unsigned int line, const char *fmt, ...); > + const char *file, unsigned int line, const char *fmt, ...) > + __attribute__((format(printf, 5, 6))); > > #define TEST_ASSERT(e, fmt, ...) \ > test_assert((e), #e, __FILE__, __LINE__, fmt, ##__VA_ARGS__) > diff --git a/tools/testing/selftests/kvm/lib/kvm_util.c b/tools/testing/selftests/kvm/lib/kvm_util.c > index 69a28a9211b4..b29c5d338555 100644 > --- a/tools/testing/selftests/kvm/lib/kvm_util.c > +++ b/tools/testing/selftests/kvm/lib/kvm_util.c > @@ -265,7 +265,7 @@ void kvm_vm_restart(struct kvm_vm *vmp, int perm) > TEST_ASSERT(ret == 0, "KVM_SET_USER_MEMORY_REGION IOCTL failed,\n" > " rc: %i errno: %i\n" > " slot: %u flags: 0x%x\n" > - " guest_phys_addr: 0x%lx size: 0x%lx", > + " guest_phys_addr: 0x%llx size: 0x%llx", > ret, errno, region->region.slot, > region->region.flags, > region->region.guest_phys_addr, > @@ -280,7 +280,7 @@ void kvm_vm_get_dirty_log(struct kvm_vm *vm, int slot, void *log) > > ret = ioctl(vm->fd, KVM_GET_DIRTY_LOG, &args); > TEST_ASSERT(ret == 0, "%s: KVM_GET_DIRTY_LOG failed: %s", > - strerror(-ret)); > + __func__, strerror(-ret)); > } > > void kvm_vm_clear_dirty_log(struct kvm_vm *vm, int slot, void *log, > @@ -293,7 +293,7 @@ void kvm_vm_clear_dirty_log(struct kvm_vm *vm, int slot, void *log, > > ret = ioctl(vm->fd, KVM_CLEAR_DIRTY_LOG, &args); > TEST_ASSERT(ret == 0, "%s: KVM_CLEAR_DIRTY_LOG failed: %s", > - strerror(-ret)); > + __func__, strerror(-ret)); > } > > /* > @@ -785,7 +785,7 @@ void vm_mem_region_move(struct kvm_vm *vm, uint32_t slot, uint64_t new_gpa) > ret = ioctl(vm->fd, KVM_SET_USER_MEMORY_REGION, ®ion->region); > > TEST_ASSERT(!ret, "KVM_SET_USER_MEMORY_REGION failed\n" > - "ret: %i errno: %i slot: %u flags: 0x%x", > + "ret: %i errno: %i slot: %u flags: 0x%lx", > ret, errno, slot, new_gpa); > } > > diff --git a/tools/testing/selftests/kvm/x86_64/evmcs_test.c b/tools/testing/selftests/kvm/x86_64/evmcs_test.c > index 185226c39c03..464a55217085 100644 > --- a/tools/testing/selftests/kvm/x86_64/evmcs_test.c > +++ b/tools/testing/selftests/kvm/x86_64/evmcs_test.c > @@ -109,7 +109,7 @@ int main(int argc, char *argv[]) > > switch (get_ucall(vm, VCPU_ID, &uc)) { > case UCALL_ABORT: > - TEST_ASSERT(false, "%s at %s:%d", (const char *)uc.args[0], > + TEST_ASSERT(false, "%s at %s:%ld", (const char *)uc.args[0], > __FILE__, uc.args[1]); > /* NOT REACHED */ > case UCALL_SYNC: > @@ -122,7 +122,7 @@ int main(int argc, char *argv[]) > > /* UCALL_SYNC is handled here. */ > TEST_ASSERT(!strcmp((const char *)uc.args[0], "hello") && > - uc.args[1] == stage, "Unexpected register values vmexit #%lx, got %lx", > + uc.args[1] == stage, "Stage %d: Unexpected register values vmexit, got %lx", > stage, (ulong)uc.args[1]); > > state = vcpu_save_state(vm, VCPU_ID); > diff --git a/tools/testing/selftests/kvm/x86_64/hyperv_cpuid.c b/tools/testing/selftests/kvm/x86_64/hyperv_cpuid.c > index 443a2b54645b..3edf3b517f9f 100644 > --- a/tools/testing/selftests/kvm/x86_64/hyperv_cpuid.c > +++ b/tools/testing/selftests/kvm/x86_64/hyperv_cpuid.c > @@ -66,7 +66,7 @@ static void test_hv_cpuid(struct kvm_cpuid2 *hv_cpuid_entries, > > TEST_ASSERT((entry->function >= 0x40000000) && > (entry->function <= 0x4000000A), > - "function %lx is our of supported range", > + "function %x is our of supported range", > entry->function); > > TEST_ASSERT(entry->index == 0, > diff --git a/tools/testing/selftests/kvm/x86_64/set_memory_region_test.c b/tools/testing/selftests/kvm/x86_64/set_memory_region_test.c > index 125aeab59ab6..f2efaa576794 100644 > --- a/tools/testing/selftests/kvm/x86_64/set_memory_region_test.c > +++ b/tools/testing/selftests/kvm/x86_64/set_memory_region_test.c > @@ -61,8 +61,7 @@ static void *vcpu_worker(void *data) > "Unexpected exit reason = %d", run->exit_reason); > > cmd = get_ucall(vm, VCPU_ID, &uc); > - TEST_ASSERT(cmd == UCALL_DONE, "Unexpected val in guest = %llu", > - uc.args[0]); > + TEST_ASSERT(cmd == UCALL_DONE, "Unexpected val in guest = %lu", uc.args[0]); > return NULL; > } > > diff --git a/tools/testing/selftests/kvm/x86_64/state_test.c b/tools/testing/selftests/kvm/x86_64/state_test.c > index 164774206170..a4dc1ee59659 100644 > --- a/tools/testing/selftests/kvm/x86_64/state_test.c > +++ b/tools/testing/selftests/kvm/x86_64/state_test.c > @@ -152,7 +152,7 @@ int main(int argc, char *argv[]) > > switch (get_ucall(vm, VCPU_ID, &uc)) { > case UCALL_ABORT: > - TEST_ASSERT(false, "%s at %s:%d", (const char *)uc.args[0], > + TEST_ASSERT(false, "%s at %s:%ld", (const char *)uc.args[0], > __FILE__, uc.args[1]); > /* NOT REACHED */ > case UCALL_SYNC: > @@ -165,7 +165,7 @@ int main(int argc, char *argv[]) > > /* UCALL_SYNC is handled here. */ > TEST_ASSERT(!strcmp((const char *)uc.args[0], "hello") && > - uc.args[1] == stage, "Unexpected register values vmexit #%lx, got %lx", > + uc.args[1] == stage, "Stage %d: Unexpected register values vmexit, got %lx", > stage, (ulong)uc.args[1]); > > state = vcpu_save_state(vm, VCPU_ID); > diff --git a/tools/testing/selftests/kvm/x86_64/svm_vmcall_test.c b/tools/testing/selftests/kvm/x86_64/svm_vmcall_test.c > index e280f68f6365..8cd841ff6305 100644 > --- a/tools/testing/selftests/kvm/x86_64/svm_vmcall_test.c > +++ b/tools/testing/selftests/kvm/x86_64/svm_vmcall_test.c > @@ -69,8 +69,7 @@ int main(int argc, char *argv[]) > case UCALL_DONE: > goto done; > default: > - TEST_ASSERT(false, > - "Unknown ucall 0x%x.", uc.cmd); > + TEST_ASSERT(false, "Unknown ucall 0x%lx.", uc.cmd); > } > } > done: > diff --git a/tools/testing/selftests/kvm/x86_64/vmx_dirty_log_test.c b/tools/testing/selftests/kvm/x86_64/vmx_dirty_log_test.c > index fe0734d9ef75..d9ca948d0b72 100644 > --- a/tools/testing/selftests/kvm/x86_64/vmx_dirty_log_test.c > +++ b/tools/testing/selftests/kvm/x86_64/vmx_dirty_log_test.c > @@ -126,7 +126,7 @@ int main(int argc, char *argv[]) > > switch (get_ucall(vm, VCPU_ID, &uc)) { > case UCALL_ABORT: > - TEST_ASSERT(false, "%s at %s:%d", (const char *)uc.args[0], > + TEST_ASSERT(false, "%s at %s:%ld", (const char *)uc.args[0], > __FILE__, uc.args[1]); > /* NOT REACHED */ > case UCALL_SYNC: > diff --git a/tools/testing/selftests/kvm/x86_64/vmx_set_nested_state_test.c b/tools/testing/selftests/kvm/x86_64/vmx_set_nested_state_test.c > index 9ef7fab39d48..7962f2fe575d 100644 > --- a/tools/testing/selftests/kvm/x86_64/vmx_set_nested_state_test.c > +++ b/tools/testing/selftests/kvm/x86_64/vmx_set_nested_state_test.c > @@ -212,7 +212,7 @@ void test_vmx_nested_state(struct kvm_vm *vm) > test_nested_state(vm, state); > vcpu_nested_state_get(vm, VCPU_ID, state); > TEST_ASSERT(state->size >= sizeof(*state) && state->size <= state_sz, > - "Size must be between %d and %d. The size returned was %d.", > + "Size must be between %ld and %d. The size returned was %d.", > sizeof(*state), state_sz, state->size); > TEST_ASSERT(state->hdr.vmx.vmxon_pa == -1ull, "vmxon_pa must be -1ull."); > TEST_ASSERT(state->hdr.vmx.vmcs12_pa == -1ull, "vmcs_pa must be -1ull."); >