Received: by 2002:a05:6a10:c604:0:0:0:0 with SMTP id y4csp4099307pxt; Tue, 10 Aug 2021 20:18:31 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzVamGR7sbBZfDCiXAnYun4Y7L7aIAlBy5/Ut17p/h85+Crqa6g1OJW+KA3MI7eFE1hE/Vj X-Received: by 2002:a05:6602:2812:: with SMTP id d18mr239678ioe.98.1628651911109; Tue, 10 Aug 2021 20:18:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1628651911; cv=none; d=google.com; s=arc-20160816; b=wC6ytoW7bwgihd3ZZxjJIujzrifhuaiMgBaXJM8znktci2WIb6mhF1QLwGZyGetOY/ XcF8xayjU1EfWaP4uin79n9HQObB50aJxqdAPE4uySlyVSdAjz8zeQ9DqxY382Rsa8Si QnbiRetH3eoUaeQ95ceTiqNCb1eHeJwvnCnZc5haVNsQBjoockbg+SqtBSGQMlFyXLaY kyJAteAlUw1NJhKW6L7OW+phVWsNoQeiEEGqlPEZExwqXZR88o5uhl7seKu4EDEOo939 x3gw8hUAb4O6rlDKnY9NpHFRXLs7/ufN9xym8k7jZIMu8r2UM7yJkHuut4tU/T2K3xEi d4Kw== 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=uWdg1aLMffSDfMSD87Wfx/prA9xhX6aIH6BSSVcD9Bo=; b=fYhnyqh+FIloZNhM2B9mfzn+DFHSJYQBZQL6dU4fUglRicav+HaBgDMdmSTV0NyFGT bWihSJniHnwI+qrBUKCktOBrZy6LVT6GPOre/ZKnzFvfRVmCnaE9Ca7jdbqJu/Gb+0kf QVbhiN6MS7YnKTFM7btxi1G++/6xKN1bsRC9FINv3JBPw8pbAUfmnPEVvbb9edMBHxR5 mYbtkE10uFPe5BANYtOOj50DPy2ANwnfA6HUV9OzQsmwLBkqewMoDq9HWdMdc86gpIeh RpbTSLvX2XHIGltzBZBKJCza0yJhF/Pt1saYIB/Sp+02v7k4adXK087BTbVmpjxnj54q 6luQ== 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 z30si12413208iow.5.2021.08.10.20.18.19; Tue, 10 Aug 2021 20:18:31 -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 S232953AbhHKDR4 (ORCPT + 99 others); Tue, 10 Aug 2021 23:17:56 -0400 Received: from out4436.biz.mail.alibaba.com ([47.88.44.36]:26905 "EHLO out4436.biz.mail.alibaba.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232102AbhHKDR4 (ORCPT ); Tue, 10 Aug 2021 23:17:56 -0400 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R881e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e04394;MF=houwenlong93@linux.alibaba.com;NM=1;PH=DS;RN=13;SR=0;TI=SMTPD_---0UieccZq_1628651840; Received: from localhost(mailfrom:houwenlong93@linux.alibaba.com fp:SMTPD_---0UieccZq_1628651840) by smtp.aliyun-inc.com(127.0.0.1); Wed, 11 Aug 2021 11:17:20 +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" , linux-kernel@vger.kernel.org Subject: [PATCH] kvm: x86: move architecture-specific code into kvm_arch_vcpu_fault Date: Wed, 11 Aug 2021 11:17:20 +0800 Message-Id: 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 The function kvm_arch_vcpu_fault can handle architecture-specific case, so move pio-data fault case into it for x86. Signed-off-by: Hou Wenlong --- arch/x86/kvm/x86.c | 8 ++++++++ virt/kvm/kvm_main.c | 4 ---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index e5d5c5ed7dd4..30b0706eced8 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -5348,6 +5348,14 @@ long kvm_arch_vcpu_ioctl(struct file *filp, vm_fault_t kvm_arch_vcpu_fault(struct kvm_vcpu *vcpu, struct vm_fault *vmf) { + if (vmf->pgoff == KVM_PIO_PAGE_OFFSET) { + struct page *page = virt_to_page(vcpu->arch.pio_data); + + get_page(page); + vmf->page = page; + return 0; + } + return VM_FAULT_SIGBUS; } diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index b50dbe269f4b..084fba09eca0 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -3370,10 +3370,6 @@ static vm_fault_t kvm_vcpu_fault(struct vm_fault *vmf) if (vmf->pgoff == 0) page = virt_to_page(vcpu->run); -#ifdef CONFIG_X86 - else if (vmf->pgoff == KVM_PIO_PAGE_OFFSET) - page = virt_to_page(vcpu->arch.pio_data); -#endif #ifdef CONFIG_KVM_MMIO else if (vmf->pgoff == KVM_COALESCED_MMIO_PAGE_OFFSET) page = virt_to_page(vcpu->kvm->coalesced_mmio_ring); -- 2.31.1