From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44237) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WQIm3-0003F8-Ik for qemu-devel@nongnu.org; Wed, 19 Mar 2014 11:51:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WQIlw-0002FW-4e for qemu-devel@nongnu.org; Wed, 19 Mar 2014 11:51:23 -0400 Sender: Paolo Bonzini Message-ID: <5329BCBD.2090809@redhat.com> Date: Wed, 19 Mar 2014 16:50:21 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1394805109-22671-1-git-send-email-aneesh.kumar@linux.vnet.ibm.com> In-Reply-To: <1394805109-22671-1-git-send-email-aneesh.kumar@linux.vnet.ibm.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit 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: "Aneesh Kumar K.V" , agraf@suse.de, paulus@samba.org Cc: qemu-ppc@nongnu.org, qemu-devel@nongnu.org Il 14/03/2014 14:51, Aneesh Kumar K.V ha scritto: > 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) { > Reviewed-by: Paolo Bonzini