Skip to content

Commit

Permalink
ppc/spapr: Use proper HPTE accessors for H_READ
Browse files Browse the repository at this point in the history
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20190411080004.8690-3-clg@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
  • Loading branch information
ozbenh authored and dgibson committed Apr 26, 2019
1 parent 24b5e0a commit 993aaf0
Showing 1 changed file with 5 additions and 6 deletions.
11 changes: 5 additions & 6 deletions hw/ppc/spapr_hcall.c
Expand Up @@ -304,8 +304,8 @@ static target_ulong h_read(PowerPCCPU *cpu, SpaprMachineState *spapr,
{
target_ulong flags = args[0];
target_ulong ptex = args[1];
uint8_t *hpte;
int i, ridx, n_entries = 1;
const ppc_hash_pte64_t *hptes;

if (!valid_ptex(cpu, ptex)) {
return H_PARAMETER;
Expand All @@ -317,13 +317,12 @@ static target_ulong h_read(PowerPCCPU *cpu, SpaprMachineState *spapr,
n_entries = 4;
}

hpte = spapr->htab + (ptex * HASH_PTE_SIZE_64);

hptes = ppc_hash64_map_hptes(cpu, ptex, n_entries);
for (i = 0, ridx = 0; i < n_entries; i++) {
args[ridx++] = ldq_p(hpte);
args[ridx++] = ldq_p(hpte + (HASH_PTE_SIZE_64/2));
hpte += HASH_PTE_SIZE_64;
args[ridx++] = ppc_hash64_hpte0(cpu, hptes, i);
args[ridx++] = ppc_hash64_hpte1(cpu, hptes, i);
}
ppc_hash64_unmap_hptes(cpu, hptes, ptex, n_entries);

return H_SUCCESS;
}
Expand Down

0 comments on commit 993aaf0

Please sign in to comment.