Received: by 10.223.185.116 with SMTP id b49csp22941wrg; Thu, 15 Feb 2018 15:46:10 -0800 (PST) X-Google-Smtp-Source: AH8x224nzrbu3jM4wFeLSrAmzd0qgKDNUiLrgJUIrB5fEZPUeqZ/5Cl1OHAGGcQHvG0rsbmq+qV4 X-Received: by 2002:a17:902:36a:: with SMTP id 97-v6mr4112019pld.365.1518738369962; Thu, 15 Feb 2018 15:46:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518738369; cv=none; d=google.com; s=arc-20160816; b=hhvYJtXMra3mtPQyuurvGuDWt8G8cJxanIL8F/wlMpLeyaUIekL2MfnHZZk0uuAVeE 1rbS8FxFpz4cujYRQyE1p+wwxQCqWQj+1GTjUEaQxT7soavkaU1oWXbaD2IkDAgH+uZB 2h12g3aKnqTJQ68snmWuR7bvYLQan5fMFwJrbZxYvSfld8reX2Bz8ZDwoiKuyc60zBAt RciHNN4VV5LQVX5ZnHlA4ABdj20wqEhzIg06/Tb3NI6vyYd/odKbfZJtgbrLRANWcmWq ERUS7sd85/o1EAM2Ml4+f3eS4r0/+KHpjHbOvWWS/mld2l6mK44UEBy2PizNSmLtmU4P uEUg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=WtfzdQ11VVM02uaznCl0gR1c0xCfq1MAdNS3Ofzu+hI=; b=lv1Q6R/iXcy4wSloYxApYwYhVmp0gZo6O5TkFLX07bHUc3JpypMP8h69VQBc2Njfcz HdfPpR9XsnX/wiwSCg9/qFW1AmPdC2gsmmTKrY9lWKspmHXcoj0w8BiAZ85rTfpZlemK 5ThockCDTd/+O3JO5W1v6d16RBLorSl7fV8M63AFRYT4qx6TcT9Swco6A9liE7HaenjJ wigTlB9LUcLKQncBpPKZbVsmtyyDdALHrkEdP/FjmWkOHOyQ3eHZUjrmqWBbPGaHfQ6+ aTbP9tdM7O31TciDyx5+DhEQLnGR98ksBV7oqBqG2sScUBjsJaXYuX+rAcXxKnBkMDzU PGCg== 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 z8-v6si2089794pll.381.2018.02.15.15.45.55; Thu, 15 Feb 2018 15:46:09 -0800 (PST) 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 S1422770AbeBOPfw (ORCPT + 99 others); Thu, 15 Feb 2018 10:35:52 -0500 Received: from mail.linuxfoundation.org ([140.211.169.12]:57582 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1422724AbeBOPfu (ORCPT ); Thu, 15 Feb 2018 10:35:50 -0500 Received: from localhost (LFbn-1-12258-90.w90-92.abo.wanadoo.fr [90.92.71.90]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 76E7B1155; Thu, 15 Feb 2018 15:35:49 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Paul Mackerras Subject: [PATCH 4.14 139/195] KVM: PPC: Book3S HV: Make sure we dont re-enter guest without XIVE loaded Date: Thu, 15 Feb 2018 16:17:10 +0100 Message-Id: <20180215151712.739402113@linuxfoundation.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180215151705.738773577@linuxfoundation.org> References: <20180215151705.738773577@linuxfoundation.org> User-Agent: quilt/0.65 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Paul Mackerras commit 43ff3f65234061e08d234bdef5a9aadc19832b74 upstream. This fixes a bug where it is possible to enter a guest on a POWER9 system without having the XIVE (interrupt controller) context loaded. This can happen because we unload the XIVE context from the CPU before doing the real-mode handling for machine checks. After the real-mode handler runs, it is possible that we re-enter the guest via a fast path which does not load the XIVE context. To fix this, we move the unloading of the XIVE context to come after the real-mode machine check handler is called. Fixes: 5af50993850a ("KVM: PPC: Book3S HV: Native usage of the XIVE interrupt controller") Signed-off-by: Paul Mackerras Signed-off-by: Greg Kroah-Hartman --- arch/powerpc/kvm/book3s_hv_rmhandlers.S | 40 ++++++++++++++++---------------- 1 file changed, 20 insertions(+), 20 deletions(-) --- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S +++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S @@ -1387,6 +1387,26 @@ END_FTR_SECTION_IFSET(CPU_FTR_ARCH_300) blt deliver_guest_interrupt guest_exit_cont: /* r9 = vcpu, r12 = trap, r13 = paca */ + /* Save more register state */ + mfdar r6 + mfdsisr r7 + std r6, VCPU_DAR(r9) + stw r7, VCPU_DSISR(r9) + /* don't overwrite fault_dar/fault_dsisr if HDSI */ + cmpwi r12,BOOK3S_INTERRUPT_H_DATA_STORAGE + beq mc_cont + std r6, VCPU_FAULT_DAR(r9) + stw r7, VCPU_FAULT_DSISR(r9) + + /* See if it is a machine check */ + cmpwi r12, BOOK3S_INTERRUPT_MACHINE_CHECK + beq machine_check_realmode +mc_cont: +#ifdef CONFIG_KVM_BOOK3S_HV_EXIT_TIMING + addi r3, r9, VCPU_TB_RMEXIT + mr r4, r9 + bl kvmhv_accumulate_time +#endif #ifdef CONFIG_KVM_XICS /* We are exiting, pull the VP from the XIVE */ lwz r0, VCPU_XIVE_PUSHED(r9) @@ -1424,26 +1444,6 @@ guest_exit_cont: /* r9 = vcpu, r12 = tr eieio 1: #endif /* CONFIG_KVM_XICS */ - /* Save more register state */ - mfdar r6 - mfdsisr r7 - std r6, VCPU_DAR(r9) - stw r7, VCPU_DSISR(r9) - /* don't overwrite fault_dar/fault_dsisr if HDSI */ - cmpwi r12,BOOK3S_INTERRUPT_H_DATA_STORAGE - beq mc_cont - std r6, VCPU_FAULT_DAR(r9) - stw r7, VCPU_FAULT_DSISR(r9) - - /* See if it is a machine check */ - cmpwi r12, BOOK3S_INTERRUPT_MACHINE_CHECK - beq machine_check_realmode -mc_cont: -#ifdef CONFIG_KVM_BOOK3S_HV_EXIT_TIMING - addi r3, r9, VCPU_TB_RMEXIT - mr r4, r9 - bl kvmhv_accumulate_time -#endif mr r3, r12 /* Increment exit count, poke other threads to exit */