From patchwork Thu Oct 29 13:56:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Uros Bizjak X-Patchwork-Id: 11866483 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D1CC2C4363A for ; Thu, 29 Oct 2020 13:56:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 731DE20791 for ; Thu, 29 Oct 2020 13:56:07 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="vXEhrLtE" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727614AbgJ2N4G (ORCPT ); Thu, 29 Oct 2020 09:56:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59968 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726184AbgJ2N4G (ORCPT ); Thu, 29 Oct 2020 09:56:06 -0400 Received: from mail-ej1-x641.google.com (mail-ej1-x641.google.com [IPv6:2a00:1450:4864:20::641]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A1CF2C0613CF for ; Thu, 29 Oct 2020 06:56:05 -0700 (PDT) Received: by mail-ej1-x641.google.com with SMTP id t25so3879314ejd.13 for ; Thu, 29 Oct 2020 06:56:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=0c1+bR9T+IplOpKDV6RvsAZ3ZFdVzQUrH0NfTUm42po=; b=vXEhrLtERJ9KdvJrljvr86XAWaPWGWu/mpmmOiBfg29cKmexUAH9RuzLZOZrvy+Wm8 Jw3qPzVBGH/6jSVWIRq9cHNIJ1yCBiVPEjzwqqKw/SjFoCZjcyGZGTUsUGOTRMIeWylW nUt60iBERHk8ZrVY4t2ABYkEUQkc8Fi3qFu5tTnxwS/ZxHh4LNbDcYXuV7S51To2sY4t SFZuLc4ROkO+GH5tqattr0nhu5jmzi8OIVXB0Sku3YSzvHpGMo9mueuzpwEDu/uvvpnF i5Jcsa7p5wiRyzhcJXRX0ksFQB/Tmq7fWZV4iAmJcs3KuV8Tqtr0+zwLC/4xhC3S/GYz 15tg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=0c1+bR9T+IplOpKDV6RvsAZ3ZFdVzQUrH0NfTUm42po=; b=BLSdHI8akYC8q5YCVjtTqWJGwnehT96D0oZOHMeZzN0wH4e7poJ/QnObzxBxRkge1j nf21gViwA6SX+3/KfTQVdRmTpSziqJrspRsZalt5XddDOV88HpKwQi5ujevwzVcCuh1Q /AaPhSxwdTz9oM6QoRnB1hpLXGd2KX628PFgww8WHowt9hXLWb+lgd7DGSAfvUM8NbQl MQScHQOSUsdH5hQ0BlZyyt143s3844xSx1e6+8kgCX+iHA3i6lZ+uivRUuoDI5WFr/xP Mb0sPaOSL5yUGXe6wz91XKy+6zUySR9SiW2x+JlxAGmnEwbDLiuGXIFhg1+vOunDALse QDaw== X-Gm-Message-State: AOAM533y2JNXrFIL5y4WGobQ33aaCgW/CJgr+JIyc3SgBf7tE5jFJxNU KzEzIpJuEEBH+onrFYMBKZPdrM8+XQ5CYw== X-Google-Smtp-Source: ABdhPJxZ2KNY34o2P1qMFC7JpDPTt0TXSskEiJdDyPhiBdzaOQAT1QkjlkGegDZ4uxVw2/hcjVZqkQ== X-Received: by 2002:a17:906:fca:: with SMTP id c10mr4346402ejk.128.1603979763889; Thu, 29 Oct 2020 06:56:03 -0700 (PDT) Received: from localhost.localdomain (93-103-18-160.static.t-2.net. [93.103.18.160]) by smtp.gmail.com with ESMTPSA id j20sm1591453edt.4.2020.10.29.06.56.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 29 Oct 2020 06:56:03 -0700 (PDT) From: Uros Bizjak To: kvm@vger.kernel.org Cc: Uros Bizjak , Paolo Bonzini , Sean Christopherson Subject: [PATCH] KVM/VMX/SVM: Move kvm_machine_check function to x86.h Date: Thu, 29 Oct 2020 14:56:00 +0100 Message-Id: <20201029135600.122392-1-ubizjak@gmail.com> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org Move kvm_machine_check to x86.h to avoid two exact copies of the same function in kvm.c and svm.c. Cc: Paolo Bonzini Cc: Sean Christopherson Signed-off-by: Uros Bizjak --- arch/x86/kvm/svm/svm.c | 20 -------------------- arch/x86/kvm/vmx/vmx.c | 20 -------------------- arch/x86/kvm/x86.h | 20 ++++++++++++++++++++ 3 files changed, 20 insertions(+), 40 deletions(-) diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c index 2f32fd09e259..f2ad59d19040 100644 --- a/arch/x86/kvm/svm/svm.c +++ b/arch/x86/kvm/svm/svm.c @@ -33,7 +33,6 @@ #include #include #include -#include #include #include @@ -1929,25 +1928,6 @@ static bool is_erratum_383(void) return true; } -/* - * Trigger machine check on the host. We assume all the MSRs are already set up - * by the CPU and that we still run on the same CPU as the MCE occurred on. - * We pass a fake environment to the machine check handler because we want - * the guest to be always treated like user space, no matter what context - * it used internally. - */ -static void kvm_machine_check(void) -{ -#if defined(CONFIG_X86_MCE) - struct pt_regs regs = { - .cs = 3, /* Fake ring 3 no matter what the guest ran on */ - .flags = X86_EFLAGS_IF, - }; - - do_machine_check(®s); -#endif -} - static void svm_handle_mce(struct vcpu_svm *svm) { if (is_erratum_383()) { diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c index 0f390c748b18..0329f09a2ca6 100644 --- a/arch/x86/kvm/vmx/vmx.c +++ b/arch/x86/kvm/vmx/vmx.c @@ -40,7 +40,6 @@ #include #include #include -#include #include #include #include @@ -4714,25 +4713,6 @@ static int handle_rmode_exception(struct kvm_vcpu *vcpu, return 1; } -/* - * Trigger machine check on the host. We assume all the MSRs are already set up - * by the CPU and that we still run on the same CPU as the MCE occurred on. - * We pass a fake environment to the machine check handler because we want - * the guest to be always treated like user space, no matter what context - * it used internally. - */ -static void kvm_machine_check(void) -{ -#if defined(CONFIG_X86_MCE) - struct pt_regs regs = { - .cs = 3, /* Fake ring 3 no matter what the guest ran on */ - .flags = X86_EFLAGS_IF, - }; - - do_machine_check(®s); -#endif -} - static int handle_machine_check(struct kvm_vcpu *vcpu) { /* handled by vmx_vcpu_run() */ diff --git a/arch/x86/kvm/x86.h b/arch/x86/kvm/x86.h index 3900ab0c6004..e1bde3f3f2d5 100644 --- a/arch/x86/kvm/x86.h +++ b/arch/x86/kvm/x86.h @@ -3,6 +3,7 @@ #define ARCH_X86_KVM_X86_H #include +#include #include #include "kvm_cache_regs.h" #include "kvm_emulate.h" @@ -366,6 +367,25 @@ static inline bool kvm_dr6_valid(u64 data) return !(data >> 32); } +/* + * Trigger machine check on the host. We assume all the MSRs are already set up + * by the CPU and that we still run on the same CPU as the MCE occurred on. + * We pass a fake environment to the machine check handler because we want + * the guest to be always treated like user space, no matter what context + * it used internally. + */ +static inline void kvm_machine_check(void) +{ +#if defined(CONFIG_X86_MCE) + struct pt_regs regs = { + .cs = 3, /* Fake ring 3 no matter what the guest ran on */ + .flags = X86_EFLAGS_IF, + }; + + do_machine_check(®s); +#endif +} + void kvm_load_guest_xsave_state(struct kvm_vcpu *vcpu); void kvm_load_host_xsave_state(struct kvm_vcpu *vcpu); int kvm_spec_ctrl_test_value(u64 value);