Message ID | 1394805109-22671-1-git-send-email-aneesh.kumar@linux.vnet.ibm.com |
---|---|
State | New |
Headers | show |
Hi, I guess this should get into 2.0 ? "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com> writes: > From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com> > > 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 <pbonzini@redhat.com> > Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> > --- > 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
Am 14.03.2014 14:51, schrieb Aneesh Kumar K.V: > From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com> > > 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 <pbonzini@redhat.com> > Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Thanks, applied to my ppc-next: https://github.com/afaerber/qemu-cpu/commits/ppc-next Andreas
Il 14/03/2014 14:51, Aneesh Kumar K.V ha scritto: > From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com> > > 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 <pbonzini@redhat.com> > Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> > --- > 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 <pbonzini@redhat.com>
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) {