From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:51579) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QNill-0003wC-R3 for qemu-devel@nongnu.org; Sat, 21 May 2011 05:46:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QNili-0005Jt-TH for qemu-devel@nongnu.org; Sat, 21 May 2011 05:46:49 -0400 Received: from fmmailgate03.web.de ([217.72.192.234]:51602) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QNili-0005Jp-Im for qemu-devel@nongnu.org; Sat, 21 May 2011 05:46:46 -0400 Message-Id: <16FD0462-08CA-41A5-9B86-400945D954B2@web.de> From: =?ISO-8859-1?Q?Andreas_F=E4rber?= In-Reply-To: <1305862499-12328-1-git-send-email-david@gibson.dropbear.id.au> Content-Type: text/plain; charset=ISO-8859-1; format=flowed; delsp=yes Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Apple Message framework v936) Date: Sat, 21 May 2011 11:46:43 +0200 References: <1305862499-12328-1-git-send-email-david@gibson.dropbear.id.au> Sender: andreas.faerber@web.de Subject: Re: [Qemu-devel] [PATCH] Fix a bug in mtsr/mtsrin emulation on ppc64 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: David Gibson Cc: kennethsalerno@yahoo.com, paulus@samba.org, agraf@suse.de, qemu-devel@nongnu.org Am 20.05.2011 um 05:34 schrieb David Gibson: > Early ppc64 CPUs include a hack to partially simulate the ppc32 =20 > segment > registers, by translating writes to them into writes to the SLB. =20 > This is > not used by any current Linux kernel, but it is used by the openbios =20= > used > in the qemu mac99 model. > > Commit 81762d6dd0d430d87024f2c83e9c4dcc4329fb7d, cleaning up the SLB > handling introduced a bug in this code, breaking the openbios =20 > currently in > qemu. Specifically, there was an off by one error bitshuffling the > register format used by mtsr into the format needed for the SLB load, > causing the flag bits to end up in the wrong place. This caused the > storage keys to be wrong under openbios, meaning that the =20 > translation code > incorrectly thought a legitimate access was a permission violation. > > This patch fixes the bug, at the same time it fixes some build bug =20 > in the > MMU debugging code (only exposed when DEBUG_MMU is enabled). > > Signed-off-by: David Gibson > --- > target-ppc/helper.c | 9 ++++----- > 1 files changed, 4 insertions(+), 5 deletions(-) > > diff --git a/target-ppc/helper.c b/target-ppc/helper.c > index 4238be6..4700632 100644 > --- a/target-ppc/helper.c > +++ b/target-ppc/helper.c > @@ -2140,7 +2139,7 @@ void ppc_store_sr (CPUPPCState *env, int =20 > srnum, target_ulong value) > /* VSID =3D VSID */ > rs |=3D (value & 0xfffffff) << 12; > /* flags =3D flags */ > - rs |=3D ((value >> 27) & 0xf) << 9; > + rs |=3D ((value >> 27) & 0xf) << 8; > > ppc_store_slb(env, rb, rs); > } else This part fixes OpenBIOS legacy ppc64 support. Acked-by: Andreas F=E4rber Andreas=