mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 09:43:56 -06:00
target-ppc: Fix htab_mask calculation
Correctly update the htab_mask using the return value of KVM_PPC_ALLOCATE_HTAB ioctl. Also we don't update sdr1 on GET_SREGS for HV. We check for external htab and if found true, we don't need to update sdr1 Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> [ fixed pte group offset computation in ppc_hash64_htab_lookup() that caused TCG to fail, Greg Kurz <gkurz@linux.vnet.ibm.com> ] Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
3707cd62db
commit
f3c75d42ad
8 changed files with 40 additions and 14 deletions
|
@ -375,7 +375,7 @@ static hwaddr ppc_hash64_htab_lookup(CPUPPCState *env,
|
|||
" vsid=" TARGET_FMT_lx " ptem=" TARGET_FMT_lx
|
||||
" hash=" TARGET_FMT_plx "\n",
|
||||
env->htab_base, env->htab_mask, vsid, ptem, hash);
|
||||
pteg_off = (hash * HASH_PTEG_SIZE_64) & env->htab_mask;
|
||||
pteg_off = (hash & env->htab_mask) * HASH_PTEG_SIZE_64;
|
||||
pte_offset = ppc_hash64_pteg_search(env, pteg_off, 0, ptem, pte);
|
||||
|
||||
if (pte_offset == -1) {
|
||||
|
@ -385,7 +385,7 @@ static hwaddr ppc_hash64_htab_lookup(CPUPPCState *env,
|
|||
" hash=" TARGET_FMT_plx "\n", env->htab_base,
|
||||
env->htab_mask, vsid, ptem, ~hash);
|
||||
|
||||
pteg_off = (~hash * HASH_PTEG_SIZE_64) & env->htab_mask;
|
||||
pteg_off = (~hash & env->htab_mask) * HASH_PTEG_SIZE_64;
|
||||
pte_offset = ppc_hash64_pteg_search(env, pteg_off, 1, ptem, pte);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue