diff options
Diffstat (limited to 'arch/powerpc/mm/hash64_4k.c')
-rw-r--r-- | arch/powerpc/mm/hash64_4k.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/arch/powerpc/mm/hash64_4k.c b/arch/powerpc/mm/hash64_4k.c index 6333b273d2d5..42c702b3be1f 100644 --- a/arch/powerpc/mm/hash64_4k.c +++ b/arch/powerpc/mm/hash64_4k.c | |||
@@ -70,8 +70,8 @@ int __hash_page_4K(unsigned long ea, unsigned long access, unsigned long vsid, | |||
70 | slot = (hash & htab_hash_mask) * HPTES_PER_GROUP; | 70 | slot = (hash & htab_hash_mask) * HPTES_PER_GROUP; |
71 | slot += (old_pte & H_PAGE_F_GIX) >> H_PAGE_F_GIX_SHIFT; | 71 | slot += (old_pte & H_PAGE_F_GIX) >> H_PAGE_F_GIX_SHIFT; |
72 | 72 | ||
73 | if (ppc_md.hpte_updatepp(slot, rflags, vpn, MMU_PAGE_4K, | 73 | if (mmu_hash_ops.hpte_updatepp(slot, rflags, vpn, MMU_PAGE_4K, |
74 | MMU_PAGE_4K, ssize, flags) == -1) | 74 | MMU_PAGE_4K, ssize, flags) == -1) |
75 | old_pte &= ~_PAGE_HPTEFLAGS; | 75 | old_pte &= ~_PAGE_HPTEFLAGS; |
76 | } | 76 | } |
77 | 77 | ||
@@ -84,21 +84,23 @@ repeat: | |||
84 | hpte_group = ((hash & htab_hash_mask) * HPTES_PER_GROUP) & ~0x7UL; | 84 | hpte_group = ((hash & htab_hash_mask) * HPTES_PER_GROUP) & ~0x7UL; |
85 | 85 | ||
86 | /* Insert into the hash table, primary slot */ | 86 | /* Insert into the hash table, primary slot */ |
87 | slot = ppc_md.hpte_insert(hpte_group, vpn, pa, rflags, 0, | 87 | slot = mmu_hash_ops.hpte_insert(hpte_group, vpn, pa, rflags, 0, |
88 | MMU_PAGE_4K, MMU_PAGE_4K, ssize); | 88 | MMU_PAGE_4K, MMU_PAGE_4K, ssize); |
89 | /* | 89 | /* |
90 | * Primary is full, try the secondary | 90 | * Primary is full, try the secondary |
91 | */ | 91 | */ |
92 | if (unlikely(slot == -1)) { | 92 | if (unlikely(slot == -1)) { |
93 | hpte_group = ((~hash & htab_hash_mask) * HPTES_PER_GROUP) & ~0x7UL; | 93 | hpte_group = ((~hash & htab_hash_mask) * HPTES_PER_GROUP) & ~0x7UL; |
94 | slot = ppc_md.hpte_insert(hpte_group, vpn, pa, | 94 | slot = mmu_hash_ops.hpte_insert(hpte_group, vpn, pa, |
95 | rflags, HPTE_V_SECONDARY, | 95 | rflags, |
96 | MMU_PAGE_4K, MMU_PAGE_4K, ssize); | 96 | HPTE_V_SECONDARY, |
97 | MMU_PAGE_4K, | ||
98 | MMU_PAGE_4K, ssize); | ||
97 | if (slot == -1) { | 99 | if (slot == -1) { |
98 | if (mftb() & 0x1) | 100 | if (mftb() & 0x1) |
99 | hpte_group = ((hash & htab_hash_mask) * | 101 | hpte_group = ((hash & htab_hash_mask) * |
100 | HPTES_PER_GROUP) & ~0x7UL; | 102 | HPTES_PER_GROUP) & ~0x7UL; |
101 | ppc_md.hpte_remove(hpte_group); | 103 | mmu_hash_ops.hpte_remove(hpte_group); |
102 | /* | 104 | /* |
103 | * FIXME!! Should be try the group from which we removed ? | 105 | * FIXME!! Should be try the group from which we removed ? |
104 | */ | 106 | */ |