From patchwork Mon Oct 30 14:17:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nikolay Borisov X-Patchwork-Id: 159757 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:d641:0:b0:403:3b70:6f57 with SMTP id cy1csp2250222vqb; Mon, 30 Oct 2023 07:17:51 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEmxQFiIxgt73dO6S74jLcGGU2QZIJD2IT6GchCp7BLH4LMDv60U1F86Fa7Td8/qGLBpQ+g X-Received: by 2002:a17:902:e848:b0:1cc:4559:ff with SMTP id t8-20020a170902e84800b001cc455900ffmr4198630plg.13.1698675470953; Mon, 30 Oct 2023 07:17:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698675470; cv=none; d=google.com; s=arc-20160816; b=SiPEl3NAXOui7jovWbDDJdXzmHgCVRuqm2qn0y/9AZCwPHNgcoBQ+omaCuLf2gl4uZ aKQ73v9HhhSGgzFUiJlJSgfRl699r5gqPoh2Y0sH5KdmFU9mWrgOOdJoHU0hGvoF25xK GcsgTI0Q3FeiWnULU6mfFsrOkZSumUyK9FVQHgf10fQKMhlCBpVainPo5WqpGnoM7T0M aYCZdphY2OlRQZjBN6qvXv5XhyRnx+blBoVdJB/FoJJy8IoWAA9/HUS0UXzwvLMeFT8W Vg3jThfaRKzQwXyodQ5UgcH7Uc4JO7LBU1kM9j+YacwKMPdJHdv9w+1a+hwjFZ3SR1wT Ehkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=JL0o6ejOmiqyX7RlEJrZ7RAI8Gjvf0EzzlogCece80k=; fh=LkO7p7q30BFfSoovj2Eo8otZDk7Xt7A9HoE19DR418E=; b=XRQcezlPYZrfK1OF40GBpZfY+lcjpl6m9yEVl9jtmi7p746dLnGHL727OWjvLMnqWl hWmrFrKb7HbYnLICWSm77XxcCn6UISaosF5ci0yBtLxFy6kS65qX1rfvUcTAzRIl2Veg d9biDRlczeu9yuy1od7/I7vQDpZTAM/uCXJv7a3IaTDb1Nov8znuHRfQsKd2Go9c5fAO NHiPWwJIIXPJeUA/09EHfmOmlAJw5+LyPci6xYI3yFpK1oe/FQFhpvOPy+WF7bbFills 74DLjLpgwmHhzLjrHPaRHjEZ4oSgpMN7vVVgBWKWkSB3A9H7ILeRmNiE1uiI/kVMcDZ4 sJvA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@suse.com header.s=susede1 header.b=Wjl2lgZq; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from groat.vger.email (groat.vger.email. [2620:137:e000::3:5]) by mx.google.com with ESMTPS id l12-20020a170902e2cc00b001c7342b46e4si4959922plc.23.2023.10.30.07.17.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Oct 2023 07:17:50 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) client-ip=2620:137:e000::3:5; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=susede1 header.b=Wjl2lgZq; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by groat.vger.email (Postfix) with ESMTP id AE0968062AC3; Mon, 30 Oct 2023 07:17:48 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233592AbjJ3ORh (ORCPT + 31 others); Mon, 30 Oct 2023 10:17:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53732 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231577AbjJ3ORf (ORCPT ); Mon, 30 Oct 2023 10:17:35 -0400 Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2001:67c:2178:6::1c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 04C9BC0; Mon, 30 Oct 2023 07:17:33 -0700 (PDT) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id B59E521906; Mon, 30 Oct 2023 14:17:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=susede1; t=1698675451; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=JL0o6ejOmiqyX7RlEJrZ7RAI8Gjvf0EzzlogCece80k=; b=Wjl2lgZqWUg/a9AE3QuJHK6+NDQzHMDQTy31U33Llwff6vIw9Uw3qZJEK6BBLQK7obO/sZ t2Mtq/tO6UUvCOg2E8yhcLo1TzdTXF2lTFc0SzApsN+9MC+1pLb4PGPjwQK+Xh8b3RevrF dn4G3KmXXo2GEKtZOC/O72raxnLbkZw= Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 66803138F8; Mon, 30 Oct 2023 14:17:31 +0000 (UTC) Received: from dovecot-director1.suse.de ([192.168.254.64]) by imap2.suse-dmz.suse.de with ESMTPSA id jifVFvu6P2VsOgAAMHmgww (envelope-from ); Mon, 30 Oct 2023 14:17:31 +0000 From: Nikolay Borisov To: seanjc@google.com Cc: pbonzini@redhat.com, x86@kernel.org, kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Nikolay Borisov Subject: [PATCH] KVM: x86: User mutex guards to eliminate __kvm_x86_vendor_init() Date: Mon, 30 Oct 2023 16:17:28 +0200 Message-Id: <20231030141728.1406118-1-nik.borisov@suse.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on groat.vger.email 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 (groat.vger.email [0.0.0.0]); Mon, 30 Oct 2023 07:17:48 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1781190331054958791 X-GMAIL-MSGID: 1781190331054958791 Current separation between (__){0,1}kvm_x86_vendor_init() is superfluos as the the underscore version doesn't have any other callers. Instead, use the newly added cleanup infrastructure to ensure that kvm_x86_vendor_init() holds the vendor_module_lock throughout its exectuion and that in case of error in the middle it's released. No functional changes. Signed-off-by: Nikolay Borisov Reviewed-by: Kai Huang --- arch/x86/kvm/x86.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 41cce5031126..cd7c2d0f88cb 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -9446,11 +9446,13 @@ static void kvm_x86_check_cpu_compat(void *ret) *(int *)ret = kvm_x86_check_processor_compatibility(); } -static int __kvm_x86_vendor_init(struct kvm_x86_init_ops *ops) +int kvm_x86_vendor_init(struct kvm_x86_init_ops *ops) { u64 host_pat; int r, cpu; + guard(mutex)(&vendor_module_lock); + if (kvm_x86_ops.hardware_enable) { pr_err("already loaded vendor module '%s'\n", kvm_x86_ops.name); return -EEXIST; @@ -9580,17 +9582,6 @@ static int __kvm_x86_vendor_init(struct kvm_x86_init_ops *ops) kmem_cache_destroy(x86_emulator_cache); return r; } - -int kvm_x86_vendor_init(struct kvm_x86_init_ops *ops) -{ - int r; - - mutex_lock(&vendor_module_lock); - r = __kvm_x86_vendor_init(ops); - mutex_unlock(&vendor_module_lock); - - return r; -} EXPORT_SYMBOL_GPL(kvm_x86_vendor_init); void kvm_x86_vendor_exit(void)