From patchwork Wed Oct 18 19:41:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 155103 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:2908:b0:403:3b70:6f57 with SMTP id ib8csp5026009vqb; Wed, 18 Oct 2023 12:41:36 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGR4aKO7fhUSMaHMmF95EeQcy6w+wQ3XqDtVyw5p0IJp+bUOC0f92Syd0ovyo/gyjjIAE5o X-Received: by 2002:a05:6870:b416:b0:1ea:746d:16f7 with SMTP id x22-20020a056870b41600b001ea746d16f7mr477896oap.6.1697658096828; Wed, 18 Oct 2023 12:41:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697658096; cv=none; d=google.com; s=arc-20160816; b=Z2OvVkW7VdlhZTb1w18nHwWMWJG4Ei2sioszmZ+DI20fpJJCsTUkIIOHtS4WCXlkth Fa694kG1jg2B41Mj+oW/+WPYfuMQoIsVcqxhkKs32HbgiDsRndCC68poo/0mL9qIKjR3 EjzrKnho2IitKMQ2vPUv3qsBOnhG2ePD7ML1Y5DsQrZKk5lpfNlXFv7tpbRA2Yd9S967 0cxcQt4VMjDQP7u4nlvKbHqnVQ3+x26lbb/w7sneAfjtS/YHyV7eBAMmwIREiqH0m2RB u5Y9W8B6JGOBY8OdhsJJE2XcqHNMaaW1Nrza9RDzCsOoNH9Yj9jhO1wdc89f+/to0jew iKxg== 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=XDwbLiOis3SdrHxTO/Y/lxRhpLoGiD6x3/AIUgIhLVk=; fh=Nq0oepwhCxvN5xgp/oTsTcwmzxolMYHrK7DBemx3XjM=; b=QUVwoparWT8Wq1fUKphKKBpS+b3i3Q+j4znNfcTjzfnzu8PllhlLA9i9pcTDCztxEX xzlgCVvfXz2gJryFFjFiY/yWaJbSBdKIeHgZBIUzFDgoZB+PE7VF5JxGLEFSHZWD9M8G fXPmCD5WVt+zFD6qVN5v7C055OcYDCidUhoo7kykg0wIua4yd3rFmkS32szwa36qRdbW BDo0zc9hLkZWUsjM1gdTlkOg76Lxr+Rac0DB93O/6BQMBAZpC13mVmW4EeYNNbiFUA+d fmCtP4NlUYZ8iKxuaHn2TaOsuS+AmP6SMtuL3RgnB77FSMUbXF8kOA5cIrk7aTGIXkLz 0Rrw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=225mPG4b; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 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 lipwig.vger.email (lipwig.vger.email. [2620:137:e000::3:3]) by mx.google.com with ESMTPS id b13-20020a63d80d000000b00565dd108fd4si2700909pgh.115.2023.10.18.12.41.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Oct 2023 12:41:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) client-ip=2620:137:e000::3:3; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=225mPG4b; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 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 lipwig.vger.email (Postfix) with ESMTP id 18F918244E5C; Wed, 18 Oct 2023 12:41:33 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231650AbjJRTlO (ORCPT + 24 others); Wed, 18 Oct 2023 15:41:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46176 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231536AbjJRTlM (ORCPT ); Wed, 18 Oct 2023 15:41:12 -0400 Received: from mail-yw1-x114a.google.com (mail-yw1-x114a.google.com [IPv6:2607:f8b0:4864:20::114a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 06A8795 for ; Wed, 18 Oct 2023 12:41:10 -0700 (PDT) Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-5a7d1816bccso109853997b3.1 for ; Wed, 18 Oct 2023 12:41:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1697658069; x=1698262869; 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=XDwbLiOis3SdrHxTO/Y/lxRhpLoGiD6x3/AIUgIhLVk=; b=225mPG4bn22vpmEQZ/lq+lcwjZcVmHd/UgrRyJJQv/nh9BGjJUbzh4ACMeF6r9ZggD Tim2wJUR0TlkYG+5oMCTYa9+FgGhyroQo1nuaGeFHdlJgNTmP4xzvBFCKQLlkXfXaW/h 0R2meemQK9REEx3buTD4LUdnDReM4przJQSAX6ezEr5oxWaoKpwu2W2S+I0eFy8O9ymK ZM9+nbK4y0dEW4YK0QrokjdR+O1at/X62oDDoF2yGN7UWvz7VxivEiaz4Fve1p8ExpWj kCba5caUEh77WN8mSQ7pczcJlYmalwYmRhwrSPdMYuRlW/t3ngLDMfDT2W/FX8169bOX gjGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697658069; x=1698262869; 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=XDwbLiOis3SdrHxTO/Y/lxRhpLoGiD6x3/AIUgIhLVk=; b=IKcC3S0tpvRglJRhOyFj/HWOSCHqt6rCw4cn/dynDsm2z9TXP336/Ltay53fOLaMOi dfCyWhHAFf1zgYcm0heIzGrKaIRZmU+zSCIxVdEI68NRxNlyLKwpjuSpDedz4lMLwD6x 5FiIpteYtUy1xBJWSdo11rzFaiNk9HEARpgzIRVIWAnF+oyULWT6Azp8XL72uyeVEMTO NbXz0S2ykF5Ph/py8xVkrHImoU9RLAuXS33pr4jv/soGQq5gkwmfdA9+ibO8ku4jaZLa cCG/3dR8qNgijaQ1PICMtHuI5xK6j1LoHUjiEBpksyJ4d5VTcikWFp0kSp830ZepFP+3 kF9Q== X-Gm-Message-State: AOJu0Yw29UJtpFgPhjhuR6owLAoByg2b+MU//aMzS5/JHAc+plr/6O1H udYhJ5pPYpc49UwGuaG+90Ndrs0vzjw= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a0d:ca46:0:b0:5a2:3de0:24a9 with SMTP id m67-20020a0dca46000000b005a23de024a9mr6913ywd.1.1697658069288; Wed, 18 Oct 2023 12:41:09 -0700 (PDT) Reply-To: Sean Christopherson Date: Wed, 18 Oct 2023 12:41:03 -0700 In-Reply-To: <20231018194104.1896415-1-seanjc@google.com> Mime-Version: 1.0 References: <20231018194104.1896415-1-seanjc@google.com> X-Mailer: git-send-email 2.42.0.655.g421f12c284-goog Message-ID: <20231018194104.1896415-2-seanjc@google.com> Subject: [PATCH 1/2] Revert "nSVM: Check for reserved encodings of TLB_CONTROL in nested VMCB" From: Sean Christopherson To: Sean Christopherson , Paolo Bonzini Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Stefan Sterz X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.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 (lipwig.vger.email [0.0.0.0]); Wed, 18 Oct 2023 12:41:33 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1780123536485780191 X-GMAIL-MSGID: 1780123536485780191 Revert KVM's made-up consistency check on SVM's TLB control. The APM says that unsupported encodings are reserved, but the APM doesn't state that VMRUN checks for a supported encoding. Unless something is called out in "Canonicalization and Consistency Checks" or listed as MBZ (Must Be Zero), AMD behavior is typically to let software shoot itself in the foot. This reverts commit 174a921b6975ef959dd82ee9e8844067a62e3ec1. Fixes: 174a921b6975 ("nSVM: Check for reserved encodings of TLB_CONTROL in nested VMCB") Reported-by: Stefan Sterz Closes: https://lkml.kernel.org/r/b9915c9c-4cf6-051a-2d91-44cc6380f455%40proxmox.com Cc: stable@vger.kernel.org Signed-off-by: Sean Christopherson Reviewed-by: Maxim Levitsky --- arch/x86/kvm/svm/nested.c | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/arch/x86/kvm/svm/nested.c b/arch/x86/kvm/svm/nested.c index 3fea8c47679e..60891b9ce25f 100644 --- a/arch/x86/kvm/svm/nested.c +++ b/arch/x86/kvm/svm/nested.c @@ -247,18 +247,6 @@ static bool nested_svm_check_bitmap_pa(struct kvm_vcpu *vcpu, u64 pa, u32 size) kvm_vcpu_is_legal_gpa(vcpu, addr + size - 1); } -static bool nested_svm_check_tlb_ctl(struct kvm_vcpu *vcpu, u8 tlb_ctl) -{ - /* Nested FLUSHBYASID is not supported yet. */ - switch(tlb_ctl) { - case TLB_CONTROL_DO_NOTHING: - case TLB_CONTROL_FLUSH_ALL_ASID: - return true; - default: - return false; - } -} - static bool __nested_vmcb_check_controls(struct kvm_vcpu *vcpu, struct vmcb_ctrl_area_cached *control) { @@ -278,9 +266,6 @@ static bool __nested_vmcb_check_controls(struct kvm_vcpu *vcpu, IOPM_SIZE))) return false; - if (CC(!nested_svm_check_tlb_ctl(vcpu, control->tlb_ctl))) - return false; - if (CC((control->int_ctl & V_NMI_ENABLE_MASK) && !vmcb12_is_intercept(control, INTERCEPT_NMI))) { return false;