From patchwork Sat Nov 9 11:05:02 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Mackerras X-Patchwork-Id: 289980 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 7590A2C0099 for ; Sat, 9 Nov 2013 22:05:54 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753253Ab3KILFs (ORCPT ); Sat, 9 Nov 2013 06:05:48 -0500 Received: from ozlabs.org ([203.10.76.45]:56909 "EHLO ozlabs.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752663Ab3KILF3 (ORCPT ); Sat, 9 Nov 2013 06:05:29 -0500 Received: from iris.au.ibm.com (ppp121-45-192-22.lns20.cbr1.internode.on.net [121.45.192.22]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPSA id 445DD2C00E7; Sat, 9 Nov 2013 22:05:21 +1100 (EST) From: Paul Mackerras To: Alexander Graf Cc: kvm-ppc@vger.kernel.org, kvm@vger.kernel.org Subject: [PATCH 14/15] KVM: PPC: Book3S HV: Add H_SET_MODE CIABR setting Date: Sat, 9 Nov 2013 22:05:02 +1100 Message-Id: <1383995103-24732-15-git-send-email-paulus@samba.org> X-Mailer: git-send-email 1.8.4.2 In-Reply-To: <1383995103-24732-1-git-send-email-paulus@samba.org> References: <1383995103-24732-1-git-send-email-paulus@samba.org> Sender: kvm-ppc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm-ppc@vger.kernel.org From: Michael Neuling This add setting the CIABR via the H_SET_MODE hcall. This is set per cpu. Signed-off-by: Michael Neuling Signed-off-by: Paul Mackerras --- arch/powerpc/kvm/book3s_hv.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c index 3bafc6f..ca21ec2 100644 --- a/arch/powerpc/kvm/book3s_hv.c +++ b/arch/powerpc/kvm/book3s_hv.c @@ -568,6 +568,17 @@ static int kvmppc_h_set_mode(struct kvm_vcpu *vcpu, unsigned long mflags, int n; switch (resource) { + case H_SET_MODE_RESOURCE_SET_CIABR: + if (!kvmppc_power8_compatible(vcpu)) + return H_P2; + if (value2) + return H_P4; + if (mflags) + return H_UNSUPPORTED_FLAG_START; + if ((value1 & 0x3) == 0x3) + return H_P3; + vcpu->arch.ciabr = value1; + return H_SUCCESS; case H_SET_MODE_RESOURCE_SET_DAWR: if (!kvmppc_power8_compatible(vcpu)) return H_P2;