From patchwork Wed Nov 8 01:09:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 162859 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:aa0b:0:b0:403:3b70:6f57 with SMTP id k11csp621196vqo; Tue, 7 Nov 2023 17:10:05 -0800 (PST) X-Google-Smtp-Source: AGHT+IEDbmiKdnW4ZsSLIPNE0wjLRJR8+2Pxns4QAaPx8Sdf8hadwifYFys3Q8tp925XZ+wlQqpr X-Received: by 2002:a17:90a:b113:b0:280:c576:31b9 with SMTP id z19-20020a17090ab11300b00280c57631b9mr436300pjq.38.1699405804797; Tue, 07 Nov 2023 17:10:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699405804; cv=none; d=google.com; s=arc-20160816; b=kYvXmA+C7sRovY4U6rNQhfGP7ROyEXn3Snb3NAXTvzf0YA70jCBGW8YUrRQAd41gqZ M6+spb3aR2/8C+cFd9i+t/cV57CLbVddCuWnkbmdU0az5OFcj7IF7CEllpNQ6c1H9/3O lz1NciDFYwxXlbnJE/u96ru5oc3UPiRpDX0b5JPunX/FkckbFRUCKlvcwYCPrW5JaAun 8hfcoUOew2vAZGncctU9rJXk9e0qr84S9FZTdkgUGsw/vNrAGwqTHOoczswF6H9veDBH VtfT+/E9cfEwPWOx9ZhoZ/wW+6a4aNQehPEqJBMOgQPDCQkzbxMUDiu9MxgCj3gdswSW 7qEw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=XHnYIgeuYnPaMTfaU4V1KcO3tRZbF1dAHww2EEsDLec=; fh=7VeUAvQ5BZa16E/u+0jD1wOsaDxHeNmq04NhQJY1gJk=; b=wAQg50LwYDpwRI30Y1Wbh25wGAPBQg2vCnPO2sG4xyqYnt1vpaLRm6KS5ZOp9UoStB +I4AmNnJ68vFyQTdsrZ7OtkTa9Lln1L3nefgr6e4tZzYF19mt5Jc1XI+OTe3w2njp9d1 1DwFiTTPrz2yqSPIjeMZyN/eEfdrqeP06COHguW0Z4d0AGTlbhXRFwDn3+ZHEkkEyc6d EYuxYHM6mqwjQNnjR/LaznQXdXSGxO+5slQQWhi8kCnKR95knCaJJowl+kZp8TQ5jHL9 EkeHXIBzOAMR95kqbzA1cWld8+GwZbLBojipkFM9+i1UZI4DgOIM2Tkir12hrh8Xa/G5 GgvA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=KNk9X+yL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id i11-20020a17090ad34b00b0027b4d1ee2c6si989345pjx.144.2023.11.07.17.10.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Nov 2023 17:10:04 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=KNk9X+yL; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 09542804E453; Tue, 7 Nov 2023 17:10:04 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235010AbjKHBKB (ORCPT + 32 others); Tue, 7 Nov 2023 20:10:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58580 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229753AbjKHBKA (ORCPT ); Tue, 7 Nov 2023 20:10:00 -0500 Received: from mail-pj1-x1049.google.com (mail-pj1-x1049.google.com [IPv6:2607:f8b0:4864:20::1049]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 36D3A193 for ; Tue, 7 Nov 2023 17:09:58 -0800 (PST) Received: by mail-pj1-x1049.google.com with SMTP id 98e67ed59e1d1-280051630e5so6054607a91.0 for ; Tue, 07 Nov 2023 17:09:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1699405797; x=1700010597; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=XHnYIgeuYnPaMTfaU4V1KcO3tRZbF1dAHww2EEsDLec=; b=KNk9X+yLvbKdLq5WcyfQWz12nGw1FyLnYDKa0DuN3FbXt065ejG+wUWmz8EbOGU5S1 lSJR651wz2wpp74PokcXQdh2A/dm3Q4n08cojyafO5X1BpPZq8QdPzK7lzgo0CDa6NKv TkMAlukBF2n3R9yHRmdGhlwj8BZ1yfjP/S8yWBYU7GxXU80FGSye2nf8kMxgoJAxk3bG 3lAqSihbrXhK+hUUBuAnl84vSVkB2q/esO8Y3i6itwCcGHz27o0pFLrIGp6MlxsNDZCG ir8irnJCxmcGQcBkgbLOfxgnjyiXYcWzg1bUFTsM/w0ix/gC4NO2fwG73pn7rPIofCEg +FoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699405797; x=1700010597; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=XHnYIgeuYnPaMTfaU4V1KcO3tRZbF1dAHww2EEsDLec=; b=XBU64KHPTfi5Vm6uw71eB2813Lxm4YJSNr3rbgY9dL4m7ifXhWsfJPsiY0GcNclAuz V5u5mVd0kqxoUXeHuMzT6F4dcCE67SaVmxUm2/aDnhMXk/ZXLVBMugEFV4/EqIMVrJ8R QcJXE4sJMwtWwfK7urBS4EURxgWGbdO28uCr5fOF3Bn7GclDOA6hEkiYdmDKpXKASmd8 WrsRSAkJnp6TKqyCMaT5wkJby+H9dDCBBXglm5HVqYoo+D+U+qCKMKxtYqvLQdE+p95S ED2Ko5VUu0yYObMPFyf5Qg8JRFMoOujfDwxyEKWf0WEh+BlSs6s2diqtQdZ9xnSAJOG6 uDBQ== X-Gm-Message-State: AOJu0Yz89fzGDhYQtB5l1GF8k1XlsdpFaVcqPY/717AtvaVDiQdO/NO0 6BNzpyw9R+bIGMv/qan9JsxHz8pWyHI= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a17:902:aa08:b0:1cc:3da9:2b96 with SMTP id be8-20020a170902aa0800b001cc3da92b96mr11895plb.3.1699405797712; Tue, 07 Nov 2023 17:09:57 -0800 (PST) Reply-To: Sean Christopherson Date: Tue, 7 Nov 2023 17:09:52 -0800 In-Reply-To: <20231108010953.560824-1-seanjc@google.com> Mime-Version: 1.0 References: <20231108010953.560824-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.869.gea05f2083d-goog Message-ID: <20231108010953.560824-2-seanjc@google.com> Subject: [PATCH v2 1/2] KVM: selftests: Drop the single-underscore ioctl() helpers From: Sean Christopherson To: Paolo Bonzini Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Sean Christopherson , Michal Luczaj , Oliver Upton , Colton Lewis Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Tue, 07 Nov 2023 17:10:04 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1781956141420293312 X-GMAIL-MSGID: 1781956141420293312 Drop _kvm_ioctl(), _vm_ioctl(), and _vcpu_ioctl(), as they are no longer used by anything other than the no-underscores variants (and may have never been used directly). The single-underscore variants were never intended to be a "feature", they were a stopgap of sorts to ease the conversion to pretty printing ioctl() names when reporting errors. Opportunistically add a comment explaining when to use __KVM_IOCTL_ERROR() versus KVM_IOCTL_ERROR(). The single-underscore macros were subtly ensuring that the name of the ioctl() was printed on error, i.e. it's all too easy to overlook the fact that using __KVM_IOCTL_ERROR() is intentional. Signed-off-by: Sean Christopherson --- .../selftests/kvm/include/kvm_util_base.h | 42 +++++++++---------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/tools/testing/selftests/kvm/include/kvm_util_base.h b/tools/testing/selftests/kvm/include/kvm_util_base.h index a18db6a7b3cf..1f6193dc7d3a 100644 --- a/tools/testing/selftests/kvm/include/kvm_util_base.h +++ b/tools/testing/selftests/kvm/include/kvm_util_base.h @@ -248,6 +248,13 @@ static inline bool kvm_has_cap(long cap) #define __KVM_SYSCALL_ERROR(_name, _ret) \ "%s failed, rc: %i errno: %i (%s)", (_name), (_ret), errno, strerror(errno) +/* + * Use the "inner", double-underscore macro when reporting errors from within + * other macros so that the name of ioctl() and not its literal numeric value + * is printed on error. The "outer" macro is strongly preferred when reporting + * errors "directly", i.e. without an additional layer of macros, as it reduces + * the probability of passing in the wrong string. + */ #define __KVM_IOCTL_ERROR(_name, _ret) __KVM_SYSCALL_ERROR(_name, _ret) #define KVM_IOCTL_ERROR(_ioctl, _ret) __KVM_IOCTL_ERROR(#_ioctl, _ret) @@ -260,17 +267,13 @@ static inline bool kvm_has_cap(long cap) #define __kvm_ioctl(kvm_fd, cmd, arg) \ kvm_do_ioctl(kvm_fd, cmd, arg) - -#define _kvm_ioctl(kvm_fd, cmd, name, arg) \ +#define kvm_ioctl(kvm_fd, cmd, arg) \ ({ \ int ret = __kvm_ioctl(kvm_fd, cmd, arg); \ \ - TEST_ASSERT(!ret, __KVM_IOCTL_ERROR(name, ret)); \ + TEST_ASSERT(!ret, __KVM_IOCTL_ERROR(#cmd, ret)); \ }) -#define kvm_ioctl(kvm_fd, cmd, arg) \ - _kvm_ioctl(kvm_fd, cmd, #cmd, arg) - static __always_inline void static_assert_is_vm(struct kvm_vm *vm) { } #define __vm_ioctl(vm, cmd, arg) \ @@ -279,16 +282,12 @@ static __always_inline void static_assert_is_vm(struct kvm_vm *vm) { } kvm_do_ioctl((vm)->fd, cmd, arg); \ }) -#define _vm_ioctl(vm, cmd, name, arg) \ -({ \ - int ret = __vm_ioctl(vm, cmd, arg); \ - \ - TEST_ASSERT(!ret, __KVM_IOCTL_ERROR(name, ret)); \ -}) - #define vm_ioctl(vm, cmd, arg) \ - _vm_ioctl(vm, cmd, #cmd, arg) - +({ \ + int ret = __vm_ioctl(vm, cmd, arg); \ + \ + TEST_ASSERT(!ret, __KVM_IOCTL_ERROR(#cmd, ret)); \ +}) static __always_inline void static_assert_is_vcpu(struct kvm_vcpu *vcpu) { } @@ -298,15 +297,12 @@ static __always_inline void static_assert_is_vcpu(struct kvm_vcpu *vcpu) { } kvm_do_ioctl((vcpu)->fd, cmd, arg); \ }) -#define _vcpu_ioctl(vcpu, cmd, name, arg) \ -({ \ - int ret = __vcpu_ioctl(vcpu, cmd, arg); \ - \ - TEST_ASSERT(!ret, __KVM_IOCTL_ERROR(name, ret)); \ -}) - #define vcpu_ioctl(vcpu, cmd, arg) \ - _vcpu_ioctl(vcpu, cmd, #cmd, arg) +({ \ + int ret = __vcpu_ioctl(vcpu, cmd, arg); \ + \ + TEST_ASSERT(!ret, __KVM_IOCTL_ERROR(#cmd, ret)); \ +}) /* * Looks up and returns the value corresponding to the capability