From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 98E6DC432C0 for ; Fri, 22 Nov 2019 10:37:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 70FED20708 for ; Fri, 22 Nov 2019 10:37:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574419024; bh=pWTdI8S1UQ1b52XHBqdaoaV7qebei0fVVdclrYBmvxg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=FX8GYjAEBEs6Rj6B6f1E876tiSHtMxB/RTOSmLY2Z9F4SKDiLLqx3mfIAAUxQ6vzv MGNdj2x+9Ey8Gc8f6AQfPQyZbYNb764CbMfkZIorVq8s+QZoJ1Z19mT7f/mA+F3jmV xS2y1ollmHBI10qhKSWpM5MHpL8FvLnEZ/Oo1MJk= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727960AbfKVKhD (ORCPT ); Fri, 22 Nov 2019 05:37:03 -0500 Received: from mail.kernel.org ([198.145.29.99]:37818 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727142AbfKVKhB (ORCPT ); Fri, 22 Nov 2019 05:37:01 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 6005420656; Fri, 22 Nov 2019 10:37:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574419020; bh=pWTdI8S1UQ1b52XHBqdaoaV7qebei0fVVdclrYBmvxg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EPeF7jnq4caeWw8UX/juXw3H15silSWVbk+HDKeVlnjT6c3K721hPKn4rnIz/Ut1W o8STYjzLSNDH8iXmiA3F+tNbp4iMMr7HLBbNV/zlHXemURNsY+yfY12XFNEeRrtdpE ZtlHXPmtdoVjDIT2AF9kqN7LMJ82VTKkaI8gWND0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Cameron Kaiser , Paul Mackerras , Sasha Levin Subject: [PATCH 4.4 131/159] KVM: PPC: Book3S PR: Exiting split hack mode needs to fixup both PC and LR Date: Fri, 22 Nov 2019 11:28:42 +0100 Message-Id: <20191122100833.700968241@linuxfoundation.org> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191122100704.194776704@linuxfoundation.org> References: <20191122100704.194776704@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Cameron Kaiser [ Upstream commit 1006284c5e411872333967b1970c2ca46a9e225f ] When an OS (currently only classic Mac OS) is running in KVM-PR and makes a linked jump from code with split hack addressing enabled into code that does not, LR is not correctly updated and reflects the previously munged PC. To fix this, this patch undoes the address munge when exiting split hack mode so that code relying on LR being a proper address will now execute. This does not affect OS X or other operating systems running on KVM-PR. Signed-off-by: Cameron Kaiser Signed-off-by: Paul Mackerras Signed-off-by: Sasha Levin --- arch/powerpc/kvm/book3s.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/powerpc/kvm/book3s.c b/arch/powerpc/kvm/book3s.c index 4aab1c9c83e1a..41ac54bfdfdd9 100644 --- a/arch/powerpc/kvm/book3s.c +++ b/arch/powerpc/kvm/book3s.c @@ -70,8 +70,11 @@ void kvmppc_unfixup_split_real(struct kvm_vcpu *vcpu) { if (vcpu->arch.hflags & BOOK3S_HFLAG_SPLIT_HACK) { ulong pc = kvmppc_get_pc(vcpu); + ulong lr = kvmppc_get_lr(vcpu); if ((pc & SPLIT_HACK_MASK) == SPLIT_HACK_OFFS) kvmppc_set_pc(vcpu, pc & ~SPLIT_HACK_MASK); + if ((lr & SPLIT_HACK_MASK) == SPLIT_HACK_OFFS) + kvmppc_set_lr(vcpu, lr & ~SPLIT_HACK_MASK); vcpu->arch.hflags &= ~BOOK3S_HFLAG_SPLIT_HACK; } } -- 2.20.1