Received: by 2002:a17:90a:88:0:0:0:0 with SMTP id a8csp31943pja; Fri, 22 Nov 2019 03:04:46 -0800 (PST) X-Google-Smtp-Source: APXvYqwNoDsM3eGNzozDCfqDPzNYMA7bcC206VWtrgeMV9YYqwBE2vMamVdjWwZTs790BXwefWnb X-Received: by 2002:a17:906:524f:: with SMTP id y15mr13774850ejm.3.1574420686280; Fri, 22 Nov 2019 03:04:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1574420686; cv=none; d=google.com; s=arc-20160816; b=Sbil92KtTomHP0Lo7yt7U5Q0XZVdXfl8dzikzjSOiryf9BSyNsJZyFfMtOZYXyWSo3 V4//73cS42G4W+VcN5nxzae2JzGj8mMYrQhUxGB3t4ajjUyGFqEu1KZcSNCD4TD3vVnU aUUDbYKVzJiIjVCzuDrznape5h5r7D+0j92bsOKvxG7LK933nGo5eElTESzmm2lo0L3n 4LJmoyHXjlzR5DKD9xTP0vi4CPG/6ZRgaZmcsx+uIpZh6gQAIAVaksjQU+hDS1XIOBAD BiYmbI/2c0vZ6Ia1i6QoXkwAfPq8+EgkfUXmryeWE4EIppUflRcNcgoh0qMU9sqZFgJN jqWw== 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=NUS8laH5w+cwBOdibscF8GmPQhK6ipsLWOX0Gf+dPVI=; b=HIMS08TeN1Av4S65g9HOK3jgx1hRWh76+/QVVffNVzeKbG1rsuqyESJNPSZa7klqgO BZ1OoXa/iqDJ4p35Ok1kcAw6EFtv/BNW2PW+GR8+TP0ntK6GqErIojk6gL0hxFrcjTYt ca9Mn2cbm259JQNaQT7TqJFFzMcn+y17XPY0LN3zUbRStG1JDKoMJ1viRaE8x3LGqm+p HU/6kaCb/6ww9pLP6/XqDqY41tIW3PdRYa402SB7JPxR0n7xE1NePNwQfR/Bi+SQhA4D vSLdtlAzXm69294GYchfJl4x/TgripaIungMMyjogZAWMcROnc8dIIU52wsjY9TGPu6H HlaQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=JsLWUWC9; 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 g20si5001755eda.229.2019.11.22.03.04.20; Fri, 22 Nov 2019 03:04:46 -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=JsLWUWC9; 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 S1731074AbfKVLAl (ORCPT + 99 others); Fri, 22 Nov 2019 06:00:41 -0500 Received: from mail.kernel.org ([198.145.29.99]:53044 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731068AbfKVLAk (ORCPT ); Fri, 22 Nov 2019 06:00:40 -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 0D2E420706; Fri, 22 Nov 2019 11:00:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574420439; bh=pDr1sift67S8LRLwSaPY2s2L0AtsVnaKQz8TwC2QZ/4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JsLWUWC90m71HgyykHlc3c5t2SuwS6yRdzTgLfdxX/MuGScv+5tFz6t0bRosO7tHw U4PZslDCRLQx/BPgdkOyW8tkiAi1L4spNqUgqeHu5AD0pug+EMjefwUSs/497fk1nu d4LBXFs68WJ7IREBF1psCYtRXOFBggIy6MLKgF6s= 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.19 106/220] KVM: PPC: Book3S PR: Exiting split hack mode needs to fixup both PC and LR Date: Fri, 22 Nov 2019 11:27:51 +0100 Message-Id: <20191122100920.400325022@linuxfoundation.org> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191122100912.732983531@linuxfoundation.org> References: <20191122100912.732983531@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 281f074581a3b..cc05f346e0421 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