Message ID | 20230122090843.3743704-1-pbonzini@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | selftests: kvm: move declaration at the beginning of main() | expand |
On Sun, Jan 22, 2023 at 1:09 AM Paolo Bonzini <pbonzini@redhat.com> wrote: > > Placing a declaration of evt_reset is pedantically invalid > according to the C standard. While GCC does not really care > and only warns with -Wpedantic, clang ignores the declaration > altogether with an error: > > x86_64/xen_shinfo_test.c:965:2: error: expected expression > struct kvm_xen_hvm_attr evt_reset = { > ^ > x86_64/xen_shinfo_test.c:969:38: error: use of undeclared identifier evt_reset > vm_ioctl(vm, KVM_XEN_HVM_SET_ATTR, &evt_reset); > ^ > > Reported-by: Yu Zhang <yu.c.zhang@linux.intel.com> > Reported-by: Sean Christopherson <seanjc@google.com> > Fixes: a79b53aaaab5 ("KVM: x86: fix deadlock for KVM_XEN_EVTCHN_RESET", 2022-12-28) > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Thanks, I had a similar patch queued up to send out today :) Can you add clang to your workflow for queueing patches? It's not the first time a selftest patch that does not build with clang has snuck into kvm/queue or even an rc [1]. [1] git log --oneline --grep Fixes: --grep clang --all-match tools/testing/selftests/kvm
diff --git a/tools/testing/selftests/kvm/x86_64/xen_shinfo_test.c b/tools/testing/selftests/kvm/x86_64/xen_shinfo_test.c index dae510c263b4..13c75dc18c10 100644 --- a/tools/testing/selftests/kvm/x86_64/xen_shinfo_test.c +++ b/tools/testing/selftests/kvm/x86_64/xen_shinfo_test.c @@ -434,6 +434,7 @@ static void *juggle_shinfo_state(void *arg) int main(int argc, char *argv[]) { struct timespec min_ts, max_ts, vm_ts; + struct kvm_xen_hvm_attr evt_reset; struct kvm_vm *vm; pthread_t thread; bool verbose; @@ -962,10 +963,8 @@ int main(int argc, char *argv[]) } done: - struct kvm_xen_hvm_attr evt_reset = { - .type = KVM_XEN_ATTR_TYPE_EVTCHN, - .u.evtchn.flags = KVM_XEN_EVTCHN_RESET, - }; + evt_reset.type = KVM_XEN_ATTR_TYPE_EVTCHN; + evt_reset.u.evtchn.flags = KVM_XEN_EVTCHN_RESET; vm_ioctl(vm, KVM_XEN_HVM_SET_ATTR, &evt_reset); alarm(0);
Placing a declaration of evt_reset is pedantically invalid according to the C standard. While GCC does not really care and only warns with -Wpedantic, clang ignores the declaration altogether with an error: x86_64/xen_shinfo_test.c:965:2: error: expected expression struct kvm_xen_hvm_attr evt_reset = { ^ x86_64/xen_shinfo_test.c:969:38: error: use of undeclared identifier evt_reset vm_ioctl(vm, KVM_XEN_HVM_SET_ATTR, &evt_reset); ^ Reported-by: Yu Zhang <yu.c.zhang@linux.intel.com> Reported-by: Sean Christopherson <seanjc@google.com> Fixes: a79b53aaaab5 ("KVM: x86: fix deadlock for KVM_XEN_EVTCHN_RESET", 2022-12-28) Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- tools/testing/selftests/kvm/x86_64/xen_shinfo_test.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)