Received: by 2002:a05:6a10:1d13:0:0:0:0 with SMTP id pp19csp109490pxb; Tue, 17 Aug 2021 20:40:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzWNwb7/RjFGTnCqsXghId8xoOexulAKe+9lY9rZhSEPsehdjHgyAQs6WmVGUmv6pcAVrt3 X-Received: by 2002:a17:906:8a6a:: with SMTP id hy10mr7601655ejc.319.1629258035819; Tue, 17 Aug 2021 20:40:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1629258035; cv=none; d=google.com; s=arc-20160816; b=NHufMxeSfzTPeWNaHkvVpmvn3OYzaqT0h34B95mqHTWvRLUboCvI46i5usmdlOj4bR EiO7TKlh2BQ50i3j16TRBIREUQZODSIiimBVm7MfWsQVF/mMUGgltddGqJ/peCPgHX14 epjf69sZg/8FvcusP97HUZMlvV9laqAF7JFYJ53sAiLKfGC1O86zaCx5z8JOsPLeCe53 c2qeAwhI7KGVSJmwmdRFe7jbged1+GoHSGztdQDSqE8CcmXDxd5e06bUUb/j23wR8fDy 6eiJIXuOfHYDji5TlZwQdaHWZVQtPcyZKHzmw4pwDjyu2o/kzRsKkdhjrmgZct1xOde+ ak9w== 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; bh=skOaeuX8Q0ypjhwLG+a0O99lejjzbS/u3RJq8vINC9o=; b=VjKo/zepM7JKpvGarYdYedqaxNoNhgwcZZcZ2eIPYs+gK8lKTMq09Bt+/pwZ9C5a8v gOVTP3hNmfTvID6afKf7v5kEV7GdklZ5J6pWhhQH4zeU5iG68o8eWOPdWgKqL24Xn/SD tWlM+itCJsCvqJvkCXMwcMj1OEzXswJaPTCgoeyQdNDfS8Dr+ZGu3rDzA8J9NV2h7408 ZtYQqatY3JDSu0sJ+8aunLVDu8INn0CL+A2mog+lBrihALBIk9XIaA4+dRBDd30aExqj 0kByXL2zGqEInS+1562dr/a1eTY5pqmDI5zidvk7r+amSmQYC4XDyK/xn/W2qvX0a1Gm kdug== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i17si2856127ejw.666.2021.08.17.20.40.13; Tue, 17 Aug 2021 20:40:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236730AbhHRDhN (ORCPT + 99 others); Tue, 17 Aug 2021 23:37:13 -0400 Received: from out30-132.freemail.mail.aliyun.com ([115.124.30.132]:60699 "EHLO out30-132.freemail.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236297AbhHRDhJ (ORCPT ); Tue, 17 Aug 2021 23:37:09 -0400 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R761e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e04395;MF=houwenlong93@linux.alibaba.com;NM=1;PH=DS;RN=14;SR=0;TI=SMTPD_---0UjbGkIu_1629257792; Received: from localhost(mailfrom:houwenlong93@linux.alibaba.com fp:SMTPD_---0UjbGkIu_1629257792) by smtp.aliyun-inc.com(127.0.0.1); Wed, 18 Aug 2021 11:36:32 +0800 From: Hou Wenlong To: kvm@vger.kernel.org Cc: Paolo Bonzini , Sean Christopherson , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel , Thomas Gleixner , Ingo Molnar , Borislav Petkov , x86@kernel.org, "H. Peter Anvin" , Avi Kivity , linux-kernel@vger.kernel.org Subject: [PATCH] kvm: fix wrong exception emulation in check_rdtsc Date: Wed, 18 Aug 2021 11:36:31 +0800 Message-Id: <1297c0dd3f1bb47a6d089f850b629c7aa0247040.1629257115.git.houwenlong93@linux.alibaba.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org According to Intel's SDM Vol2 and AMD's APM Vol3, when CR4.TSD is set, use rdtsc/rdtscp instruction above privilege level 0 should trigger a #GP. Fixes: d7eb82030699e ("KVM: SVM: Add intercept checks for remaining group7 instructions") Signed-off-by: Hou Wenlong --- arch/x86/kvm/emulate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c index 2837110e66ed..c589ac832265 100644 --- a/arch/x86/kvm/emulate.c +++ b/arch/x86/kvm/emulate.c @@ -4206,7 +4206,7 @@ static int check_rdtsc(struct x86_emulate_ctxt *ctxt) u64 cr4 = ctxt->ops->get_cr(ctxt, 4); if (cr4 & X86_CR4_TSD && ctxt->ops->cpl(ctxt)) - return emulate_ud(ctxt); + return emulate_gp(ctxt, 0); return X86EMUL_CONTINUE; } -- 2.31.1