From patchwork Thu Jan 11 10:11:28 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Guo X-Patchwork-Id: 858990 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=kvm-ppc-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="VsFj9vE6"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3zHMBl1yTrz9t6B for ; Thu, 11 Jan 2018 21:12:47 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933294AbeAKKMq (ORCPT ); Thu, 11 Jan 2018 05:12:46 -0500 Received: from mail-pg0-f68.google.com ([74.125.83.68]:44527 "EHLO mail-pg0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933269AbeAKKMo (ORCPT ); Thu, 11 Jan 2018 05:12:44 -0500 Received: by mail-pg0-f68.google.com with SMTP id m20so1842253pgc.11; Thu, 11 Jan 2018 02:12:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=lsCDaIaoJh6qW8Vh7iSUZVPgFNS5s4ghd93h3PD18UM=; b=VsFj9vE68R+pmiLR/R0RMxVx8t/dKkJsCM43p3Boe7x0yO3WHCNyrRDPF1Z6Mt9eMD o97U2R6ksFYt849uF67xFhhwOdLW10OXlGvr7mQn2JBB+MMJsFSa6/1IGB48UKzHYcbt tEvTeJfsR0qEgdZNt/kiW7zZWB2J62RpQC8U/ny5Aup4HLV0vSH92qUGjDWfwG57hYJ8 w4GdCrr9sIl4xbIGxAXnl9+k9Wbc/MH1TyI4aXzNSpo/nTBBxa23pKbptpqqpuWXvcSN JopCtksWdyLslaXZ906LtzHLxnpdqBf5tRq3ajFNajjDfCVrXwU5LrllzIUqpkjP3oIL Yfig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=lsCDaIaoJh6qW8Vh7iSUZVPgFNS5s4ghd93h3PD18UM=; b=tvyTC+FoL0z2NVoP+hAGar8jj9M21/uY+4V4oALisNBDRvtzudzauqqZlg6Nwnd59E UPZA9TLVRC84FDVieeKU1q3E/8mCJ4ILCdHgEIXbXNHcIFbL0mDeKPgkQII4JDpOA6KD aVqTRv9Xdg4WmYz3KE+WdMU1BqGxA1W4m9pdC9xwbllw3dheAVo/rfoVZ9AArmuEt11L 3SGWnIbo1p34aYrakDSZUO1zmkFbe1/7fQ0x5frxks2K+cRO50OdobtfMVfE7UAng+qX /oXmN8HFSTyr8nNr6oieXfz++NF3HieqMXEiuvEg7o4AYPp/VvRPSQTv8oY/f8Y+vfol oJpw== X-Gm-Message-State: AKwxytdE/EQjE/xqDOaUSLqJzQT6rCyW0ThAez2n0bU3HRbrzQER5gMm c/vtu1yfz/SrbpQWVj9FXEKZCQ== X-Google-Smtp-Source: ACJfBovBebXiFcn/2EBPYUuUDfdXVISsiMmx0quOaDGoBV7Vs9CzdHAbEv/WXzoyayJrkgltZl6PmA== X-Received: by 10.84.248.135 with SMTP id q7mr1358486pll.86.1515665564316; Thu, 11 Jan 2018 02:12:44 -0800 (PST) Received: from simonLocalRHEL7.cn.ibm.com ([112.73.0.88]) by smtp.gmail.com with ESMTPSA id m11sm34336122pgt.56.2018.01.11.02.12.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 11 Jan 2018 02:12:43 -0800 (PST) From: wei.guo.simon@gmail.com To: linuxppc-dev@lists.ozlabs.org Cc: Paul Mackerras , kvm@vger.kernel.org, kvm-ppc@vger.kernel.org, Simon Guo Subject: [PATCH 15/26] KVM: PPC: Book3S PR: add kvmppc_save/restore_tm_sprs() APIs Date: Thu, 11 Jan 2018 18:11:28 +0800 Message-Id: <1515665499-31710-16-git-send-email-wei.guo.simon@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1515665499-31710-1-git-send-email-wei.guo.simon@gmail.com> References: <1515665499-31710-1-git-send-email-wei.guo.simon@gmail.com> Sender: kvm-ppc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm-ppc@vger.kernel.org From: Simon Guo This patch adds 2 new APIs kvmppc_save_tm_sprs()/kvmppc_restore_tm_sprs() for the purpose of TEXASR/TFIAR/TFHAR save/restore. Signed-off-by: Simon Guo Reviewed-by: Paul Mackerras --- arch/powerpc/kvm/book3s_pr.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/arch/powerpc/kvm/book3s_pr.c b/arch/powerpc/kvm/book3s_pr.c index b2f7566..5224b3c 100644 --- a/arch/powerpc/kvm/book3s_pr.c +++ b/arch/powerpc/kvm/book3s_pr.c @@ -42,6 +42,7 @@ #include #include #include +#include #include "book3s.h" @@ -235,6 +236,27 @@ void kvmppc_copy_from_svcpu(struct kvm_vcpu *vcpu, preempt_enable(); } +#ifdef CONFIG_PPC_TRANSACTIONAL_MEM +static inline void kvmppc_save_tm_sprs(struct kvm_vcpu *vcpu) +{ + tm_enable(); + vcpu->arch.tfhar = mfspr(SPRN_TFHAR); + vcpu->arch.texasr = mfspr(SPRN_TEXASR); + vcpu->arch.tfiar = mfspr(SPRN_TFIAR); + tm_disable(); +} + +static inline void kvmppc_restore_tm_sprs(struct kvm_vcpu *vcpu) +{ + tm_enable(); + mtspr(SPRN_TFHAR, vcpu->arch.tfhar); + mtspr(SPRN_TEXASR, vcpu->arch.texasr); + mtspr(SPRN_TFIAR, vcpu->arch.tfiar); + tm_disable(); +} + +#endif + static int kvmppc_core_check_requests_pr(struct kvm_vcpu *vcpu) { int r = 1; /* Indicate we want to get back into the guest */