Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp152186yba; Tue, 23 Apr 2019 21:43:53 -0700 (PDT) X-Google-Smtp-Source: APXvYqzDGgClCnF5zC0CGjxHvu+VQVL0Ozf9G/BV8WX1pGoPgT2oB/jWelNYqnU7vYB2CJ6y2dDd X-Received: by 2002:aa7:9ab1:: with SMTP id x17mr30953161pfi.4.1556081033252; Tue, 23 Apr 2019 21:43:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556081033; cv=none; d=google.com; s=arc-20160816; b=zcx+psP7qNh3G5UFliHebkG+SLLqJAg8Yk0BcTF/ujfumwW9X62ALA80mYaPX19BMM dmZG1x8v/oEN4tF1NFR//J1H6c39WWoJsEMDNA1FM5cpJjJX1w3MDd/c1b/x7bNbsPPc qp0+oojnDm6KotD7m+DFx1ubRqtvD7NELm0eS5EmMhlLNEE8toy++GWYjkk91Ks0ilJb lgKeHNkqwn9RbAAchuJxcUoRVTnFywH4d8hW4IZEqCWVfVhX+Oh1MAuTuBbVTCwF30EL qnIwdiE8zaXdOjQl8IGuNoXVSWni3MIv68lntawDi+UCLwDrh9UwmTN69q3PN5nd2dBt ceJQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:subject:to :from; bh=fmo9KUgmtbz5wAhDqeS0ImkqvZBN6/z/kSAS2+i7RpQ=; b=kR5DNj+tGelR6WAnbCA29N/L4rUw2P3duN3VO7eBdYLt76xk3ZVHblwvE9u4babBtF d4RXhI/CmfNZ9s7ec2Jb/v8FpCsji+JfYJY9KwZBm3q8OUz0HjbbHsQHhk06sutHCxVw +TEdgYiOvI9GK8z2BK7UmmOQcs8O3rxDhkHZ1SGSZ5yrfWhmjVxpXm3i0l9/Bz+1DFno QCU69KVMbSePYO6lH/3cDiH0FiZ1ODDbhmCDRcVGAG+/CBjWkMnc+XUjAQQUlDENC4sp Ks0wtOQWNBfNA0/BRcbVumqxHL6A/7NGLTMu1KK5kMpYWIbuHBmEdTnqD8OT5YC/88vG gWGw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x32si18494714pld.279.2019.04.23.21.43.25; Tue, 23 Apr 2019 21:43:53 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726452AbfDXEl5 (ORCPT + 99 others); Wed, 24 Apr 2019 00:41:57 -0400 Received: from szxga07-in.huawei.com ([45.249.212.35]:49660 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725934AbfDXEl5 (ORCPT ); Wed, 24 Apr 2019 00:41:57 -0400 Received: from DGGEMS412-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id 292B69D7AFA4C9779A00; Wed, 24 Apr 2019 12:41:55 +0800 (CST) Received: from localhost.localdomain (10.143.28.91) by DGGEMS412-HUB.china.huawei.com (10.3.19.212) with Microsoft SMTP Server id 14.3.439.0; Wed, 24 Apr 2019 12:41:48 +0800 From: Dongjiu Geng To: , , , , , , , , Subject: [PATCH] KVM: arm/arm64: inject an async abort to host if SEA handling failed Date: Wed, 24 Apr 2019 12:41:47 +0800 Message-ID: <1556080907-25158-1-git-send-email-gengdongjiu@huawei.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.143.28.91] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If host failed to handle the SEA, KVM should inject an async abort to guest for both SEA data and instruction abort, but it currently only handles the data abort, so correct it. Cc: James Morse Cc: Xiang Zheng Signed-off-by: Dongjiu Geng --- virt/kvm/arm/mmu.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/virt/kvm/arm/mmu.c b/virt/kvm/arm/mmu.c index 27c9583..5882516 100644 --- a/virt/kvm/arm/mmu.c +++ b/virt/kvm/arm/mmu.c @@ -1924,14 +1924,13 @@ int kvm_handle_guest_abort(struct kvm_vcpu *vcpu, struct kvm_run *run) /* * For RAS the host kernel may handle this abort. * There is no need to pass the error into the guest. + * If host failed to handle it, inject an async abort + * to guest. */ - if (!kvm_handle_guest_sea(fault_ipa, kvm_vcpu_get_hsr(vcpu))) - return 1; - - if (unlikely(!is_iabt)) { + if (kvm_handle_guest_sea(fault_ipa, kvm_vcpu_get_hsr(vcpu))) kvm_inject_vabt(vcpu); - return 1; - } + + return 1; } trace_kvm_guest_fault(*vcpu_pc(vcpu), kvm_vcpu_get_hsr(vcpu), -- 2.7.4