Received: by 2002:a5d:9c59:0:0:0:0:0 with SMTP id 25csp224856iof; Mon, 6 Jun 2022 02:02:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyfXjDKK87yYOSoMFbo8P24oMPazI++WhmnUMLQ1+OyJWHUiFax5RgCUjpZ0XGOeyLPOtBP X-Received: by 2002:a63:2a92:0:b0:3fd:3da3:86ae with SMTP id q140-20020a632a92000000b003fd3da386aemr12095319pgq.284.1654506149153; Mon, 06 Jun 2022 02:02:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1654506149; cv=none; d=google.com; s=arc-20160816; b=0nnIZbSLVQRwpDqTDUjaBCQAZ2BYQG84ohNMB92KfpF09DsGshzgR/IN51PaS29wMe AMcgI1KoQXqgMri8m+e9xpV8B5F++8o2bnI1eTTpuwfHxSkOZs+ktoufmlxJHNIPGd2l 8m6DqlxCrzegsfclNj83Rw8c7fEGLK0K6UvRgi/5aSYjhmkUtivYGuXtsiB2jUW/zpgA N5drw6jJJdtxla+wYag7nJWdbzQTcOgjlFBdEheTSxsS9JxGUEtrqeEKJsCWcth9eu4u ir9C+Ty0p9lVRd2CE5t9Xg3vFQJRShxxGuJpmdcdS84KFiEnbawod5WeBHnYqJvE8BuJ bETw== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=rA2ZU5EO4busB6QHhw0Hvt7wSZRl7Hy05Vu2JYEnIxc=; b=kyeUnqqnO5ScJFQFnhOE3XMzCcbK+778g77m+YMjAhOwQUKZtyOmM+KljD0r4fDyYp evgDE/357YLlrLkm50XblbF9bhpiyFiZns5faRuL2ByUhBjcXPsqnEJN2WHvh9VNYA45 DgmmZKBG4Pv17idvHZYDnpILdj5ptdo8wLXS9zTuCQPXgv6W931QAP4P4F2SEgJcTxgd YOb3fBt+UdTyaWOJBRwSuJL9lig8zbWS7KxE1Ft+tJfQs3AwwAPB0f/bWdYhJ75gXTSu 13QqrLlv8J3j4LMvpun5SWowZ/YcyjZn+TEue38y8b3GzYVHltEeUQ0o8k4sLswjMXb5 Wm9w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=GPXrI1GQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id h190-20020a6383c7000000b003fdebcd139esi71584pge.649.2022.06.06.02.02.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Jun 2022 02:02:29 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=GPXrI1GQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 4CC623389B; Mon, 6 Jun 2022 01:38:49 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232036AbiFFIiA (ORCPT + 99 others); Mon, 6 Jun 2022 04:38:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34886 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231920AbiFFIhV (ORCPT ); Mon, 6 Jun 2022 04:37:21 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 11A1012A89 for ; Mon, 6 Jun 2022 01:37:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1654504639; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=rA2ZU5EO4busB6QHhw0Hvt7wSZRl7Hy05Vu2JYEnIxc=; b=GPXrI1GQ1ym/IDijkYSFwBdV7Qw1mrS8PvXBvURPqPvlz3cWSk4tsJkH9/owaN2jxQWb81 d2P6CSfM1XkxQam9D0PuTwwpuXSCP9ka8umUNCr3VUUGt0cgXhhIxsRf7KOqMfNe6BnRK6 SHR/tRvaHu9A8c6LU89TnTEVuTkga4E= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-91-aXlzV0pAM26TR4eHJMDb2w-1; Mon, 06 Jun 2022 04:37:17 -0400 X-MC-Unique: aXlzV0pAM26TR4eHJMDb2w-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 7FE40811E75; Mon, 6 Jun 2022 08:37:16 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.40.193.53]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1C2D61121314; Mon, 6 Jun 2022 08:37:13 +0000 (UTC) From: Vitaly Kuznetsov To: kvm@vger.kernel.org, Paolo Bonzini Cc: Sean Christopherson , Wanpeng Li , Jim Mattson , Michael Kelley , Siddharth Chandrasekaran , Yuan Yao , Maxim Levitsky , linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v6 07/38] KVM: x86: Prepare kvm_hv_flush_tlb() to handle L2's GPAs Date: Mon, 6 Jun 2022 10:36:24 +0200 Message-Id: <20220606083655.2014609-8-vkuznets@redhat.com> In-Reply-To: <20220606083655.2014609-1-vkuznets@redhat.com> References: <20220606083655.2014609-1-vkuznets@redhat.com> MIME-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-Spam-Status: No, score=-3.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org To handle L2 TLB flush requests, KVM needs to translate the specified L2 GPA to L1 GPA to read hypercall arguments from there. No functional change as KVM doesn't handle VMCALL/VMMCALL from L2 yet. Reviewed-by: Maxim Levitsky Signed-off-by: Vitaly Kuznetsov --- arch/x86/kvm/hyperv.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c index d6abc5265f55..992972e0f5de 100644 --- a/arch/x86/kvm/hyperv.c +++ b/arch/x86/kvm/hyperv.c @@ -23,6 +23,7 @@ #include "ioapic.h" #include "cpuid.h" #include "hyperv.h" +#include "mmu.h" #include "xen.h" #include @@ -1915,6 +1916,12 @@ static u64 kvm_hv_flush_tlb(struct kvm_vcpu *vcpu, struct kvm_hv_hcall *hc) */ BUILD_BUG_ON(KVM_HV_MAX_SPARSE_VCPU_SET_BITS > 64); + if (!hc->fast && is_guest_mode(vcpu)) { + hc->ingpa = translate_nested_gpa(vcpu, hc->ingpa, 0, NULL); + if (unlikely(hc->ingpa == UNMAPPED_GVA)) + return HV_STATUS_INVALID_HYPERCALL_INPUT; + } + if (hc->code == HVCALL_FLUSH_VIRTUAL_ADDRESS_LIST || hc->code == HVCALL_FLUSH_VIRTUAL_ADDRESS_SPACE) { if (hc->fast) { -- 2.35.3