From patchwork Fri Jul 11 08:38:57 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bharat Bhushan X-Patchwork-Id: 369067 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 3D6811400F4 for ; Fri, 11 Jul 2014 18:40:57 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752240AbaGKIk4 (ORCPT ); Fri, 11 Jul 2014 04:40:56 -0400 Received: from mail-by2lp0240.outbound.protection.outlook.com ([207.46.163.240]:36379 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751469AbaGKIkx (ORCPT ); Fri, 11 Jul 2014 04:40:53 -0400 Received: from BY2PR03CA033.namprd03.prod.outlook.com (10.242.234.154) by DM2PR03MB350.namprd03.prod.outlook.com (10.141.54.21) with Microsoft SMTP Server (TLS) id 15.0.980.8; Fri, 11 Jul 2014 08:40:51 +0000 Received: from BN1AFFO11FD022.protection.gbl (2a01:111:f400:7c10::112) by BY2PR03CA033.outlook.office365.com (2a01:111:e400:2c2c::26) with Microsoft SMTP Server (TLS) id 15.0.985.8 via Frontend Transport; Fri, 11 Jul 2014 08:40:50 +0000 Received: from tx30smr01.am.freescale.net (192.88.168.50) by BN1AFFO11FD022.mail.protection.outlook.com (10.58.52.82) with Microsoft SMTP Server (TLS) id 15.0.980.11 via Frontend Transport; Fri, 11 Jul 2014 08:40:49 +0000 Received: from kvm.ap.freescale.net (kvm.ap.freescale.net [10.232.14.24]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id s6B8ec3N030811; Fri, 11 Jul 2014 01:40:45 -0700 From: Bharat Bhushan To: , CC: , , , Bharat Bhushan Subject: [PATCH 2/6] KVM: PPC: BOOKE: Force MSR_DE in rfci if guest is under debug Date: Fri, 11 Jul 2014 14:08:57 +0530 Message-ID: <1405067941-27134-3-git-send-email-Bharat.Bhushan@freescale.com> X-Mailer: git-send-email 1.9.3 In-Reply-To: <1405067941-27134-1-git-send-email-Bharat.Bhushan@freescale.com> References: <1405067941-27134-1-git-send-email-Bharat.Bhushan@freescale.com> X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:192.88.168.50; CTRY:US; IPV:CAL; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(6009001)(199002)(189002)(86362001)(97736001)(6806004)(31966008)(74662001)(44976005)(50226001)(68736004)(48376002)(92566001)(50466002)(36756003)(95666004)(77982001)(102836001)(85306003)(62966002)(47776003)(99396002)(76482001)(107046002)(64706001)(87286001)(93916002)(21056001)(46102001)(4396001)(84676001)(85852003)(80022001)(79102001)(105606002)(83072002)(19580395003)(77156001)(88136002)(229853001)(87936001)(50986999)(89996001)(81542001)(81342001)(104166001)(106466001)(19580405001)(76176999)(92726001)(74502001)(104016003)(83322001)(20776003)(26826002); DIR:OUT; SFP:; SCL:1; SRVR:DM2PR03MB350; H:tx30smr01.am.freescale.net; FPR:; MLV:ovrnspm; PTR:InfoDomainNonexistent; MX:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Antispam: BCL:0;PCL:0;RULEID: X-Forefront-PRVS: 02698DF457 Received-SPF: Fail (: domain of freescale.com does not designate 192.88.168.50 as permitted sender) receiver=; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=Bharat.Bhushan@freescale.com; X-OriginatorOrg: freescale.com Sender: kvm-ppc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm-ppc@vger.kernel.org When userspace (QEMU) is using the debug resource to debug guest then we want MSR_DE to be always set. This patch adds missing MSR_DE setting in "rfci" instruction. Signed-off-by: Bharat Bhushan --- arch/powerpc/kvm/booke_emulate.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/arch/powerpc/kvm/booke_emulate.c b/arch/powerpc/kvm/booke_emulate.c index 27a4b28..80c51a2 100644 --- a/arch/powerpc/kvm/booke_emulate.c +++ b/arch/powerpc/kvm/booke_emulate.c @@ -40,7 +40,11 @@ static void kvmppc_emul_rfi(struct kvm_vcpu *vcpu) static void kvmppc_emul_rfci(struct kvm_vcpu *vcpu) { vcpu->arch.pc = vcpu->arch.csrr0; - kvmppc_set_msr(vcpu, vcpu->arch.csrr1); + /* Force MSR_DE when guest does not own debug facilities */ + if (vcpu->guest_debug) + kvmppc_set_msr(vcpu, vcpu->arch.csrr1 | MSR_DE); + else + kvmppc_set_msr(vcpu, vcpu->arch.csrr1); } int kvmppc_booke_emulate_op(struct kvm_run *run, struct kvm_vcpu *vcpu,