Received: by 2002:a17:90a:88:0:0:0:0 with SMTP id a8csp56949pja; Fri, 22 Nov 2019 03:24:18 -0800 (PST) X-Google-Smtp-Source: APXvYqzfak14Q1kWn+oTiT6s07PF0IbAZe5WSAMaLRUc/fMZAo1wuZUdF8OgBq/KkHwiIvxS92FG X-Received: by 2002:a50:ec97:: with SMTP id e23mr415131edr.111.1574421857882; Fri, 22 Nov 2019 03:24:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1574421857; cv=none; d=google.com; s=arc-20160816; b=0c6z2/WvATkH9l8ffvjso2bMP/hr3tdfY5RA+MS2YZJ5mDph5cMjpebPtQeFC8t+wY SuAkBUINtXomnhA6TsUZt2dtPr/ojVaNxJgWixxrb+CYCwzhIYywOEi8mjCcQQmbH4gr WYw8mrq4uYMnjywfpuj+RJtUd9aJ6k9gkkNTc5RkJxeJ87FBhoEKQ5dmHkWNF4KIMGk0 ABrvV6R385gv9j8KKhcCpvpwf1AZnMNY0vfH3iLnmXJoykupEjCV7OjXVLqgqQMadhMJ OEuj599YZTPksssq3xy9z2mDkf8nLWVWrsZgwSgYhtAJCiSKj/kdGqofIUWH+E6oHGDQ nbnw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=afSAdJGgUiEeg1oyfErMD6eOUvjTcvECx+xLmZMgm0s=; b=jpnyblgqIrGs0hZp/759VVp2VRid0cDFOivDvK7oTfLvLXL6/1+ZCo/QW+paLVonBZ EDOWcwlEfltIFFyZCkB/m3jKBdA9T7/kRwEPS0ALwEETpUIXQnYcqdoHvmjsN+iMaQ8V lO763pbPpA+wt/1G63Nz9lbROaqX1Rq7VfKzlbpBhRfLMwvk07qA1CxrESSbcOZcZljU Kv/pHmJCgflAM66hi9C8kq6W2D43msuJzVKDazvfiSvud8Vp8Fcu7R5Q3UvMZDAQFpG3 2i5uxUHF/AAy1Y+tXD5DtWCRngQDQpAVGbBVQNCYYh3SLve/Wk9fdGV+neD8e237lKqF wfqQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=DfwyjoBy; 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 e11si3862613ejr.303.2019.11.22.03.23.52; Fri, 22 Nov 2019 03:24:17 -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; dkim=pass header.i=@kernel.org header.s=default header.b=DfwyjoBy; 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 S1729517AbfKVLTk (ORCPT + 99 others); Fri, 22 Nov 2019 06:19:40 -0500 Received: from mail.kernel.org ([198.145.29.99]:55112 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726942AbfKVKrT (ORCPT ); Fri, 22 Nov 2019 05:47:19 -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 0A21D20656; Fri, 22 Nov 2019 10:47:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574419638; bh=P+UQtROkCA51/TMMU3JLQRCuGXr6mCdR6xtD5hFuvU4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DfwyjoByUpsXEKmB5q6agsRtfUFQ4+CTnU6rwf9nxVAix5QuKo8iLJ++dEgnTCLRk HqSqbnCoHaJxoq7KDBfDV+zRoOT9se22di2qBmOSlzqtaVMhYdTvp4gnIRsW420Tzu IMHxlWBWSoQxFSagSu5Hitiv+KONFePEMXNxvhis= 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.9 182/222] 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: <20191122100915.509282448@linuxfoundation.org> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191122100830.874290814@linuxfoundation.org> References: <20191122100830.874290814@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 73c3c127d8584..209cad89a11a5 100644 --- a/arch/powerpc/kvm/book3s.c +++ b/arch/powerpc/kvm/book3s.c @@ -78,8 +78,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