From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:37467) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WQHX6-0003Ph-Gp for qemu-devel@nongnu.org; Wed, 19 Mar 2014 10:32:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WQHWw-0001AN-F5 for qemu-devel@nongnu.org; Wed, 19 Mar 2014 10:31:52 -0400 Received: from e28smtp02.in.ibm.com ([122.248.162.2]:52441) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WQHWv-00019J-Qk for qemu-devel@nongnu.org; Wed, 19 Mar 2014 10:31:42 -0400 Received: from /spool/local by e28smtp02.in.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 19 Mar 2014 20:01:38 +0530 From: "Aneesh Kumar K.V" In-Reply-To: <1394805109-22671-1-git-send-email-aneesh.kumar@linux.vnet.ibm.com> References: <1394805109-22671-1-git-send-email-aneesh.kumar@linux.vnet.ibm.com> Date: Wed, 19 Mar 2014 20:01:33 +0530 Message-ID: <87d2hii7ju.fsf@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [Qemu-devel] [PATCH] target-ppc: Fix h_enter to loop correctly List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: agraf@suse.de, paulus@samba.org, Paolo Bonzini , Peter Maydell Cc: qemu-ppc@nongnu.org, qemu-devel@nongnu.org Hi, I guess this should get into 2.0 ? "Aneesh Kumar K.V" writes: > From: "Aneesh Kumar K.V" > > We wanted to loop till index is 8. On 8 we return with H_PTEG_FULL. If we are > successful in loading hpte with any other index, we continue with that > index value. > > Reported-by: Paolo Bonzini > Signed-off-by: Aneesh Kumar K.V > --- > hw/ppc/spapr_hcall.c | 11 +++++------ > 1 file changed, 5 insertions(+), 6 deletions(-) > > diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c > index e999bbaea062..2ab55d568bf4 100644 > --- a/hw/ppc/spapr_hcall.c > +++ b/hw/ppc/spapr_hcall.c > @@ -110,16 +110,15 @@ static target_ulong h_enter(PowerPCCPU *cpu, sPAPREnvironment *spapr, > if (likely((flags & H_EXACT) == 0)) { > pte_index &= ~7ULL; > token = ppc_hash64_start_access(cpu, pte_index); > - do { > - if (index == 8) { > - ppc_hash64_stop_access(token); > - return H_PTEG_FULL; > - } > + for (; index < 8; index++) { > if ((ppc_hash64_load_hpte0(env, token, index) & HPTE64_V_VALID) == 0) { > break; > } > - } while (index++); > + } > ppc_hash64_stop_access(token); > + if (index == 8) { > + return H_PTEG_FULL; > + } > } else { > token = ppc_hash64_start_access(cpu, pte_index); > if (ppc_hash64_load_hpte0(env, token, 0) & HPTE64_V_VALID) { > -- > 1.8.3.2 -aneesh