mmu_hash_ops
extern struct mmu_hash_ops mmu_hash_ops;
if (mmu_hash_ops.hpte_remove(hpteg) < 0) {
ret = mmu_hash_ops.hpte_insert(hpteg, vpn, hpaddr, rflags, vflags,
mmu_hash_ops.hpte_invalidate(pte->slot, pte->host_vpn,
mmu_hash_ops.hpte_remove(hpte_group);
if (mmu_hash_ops.hpte_updatepp(gslot, rflags, vpn, MMU_PAGE_4K,
slot = mmu_hash_ops.hpte_insert(hpte_group, vpn, pa, rflags, 0,
slot = mmu_hash_ops.hpte_insert(hpte_group, vpn, pa,
ret = mmu_hash_ops.hpte_updatepp(gslot, rflags, vpn,
slot = mmu_hash_ops.hpte_insert(hpte_group, vpn, pa, rflags, 0,
slot = mmu_hash_ops.hpte_insert(hpte_group, vpn, pa,
mmu_hash_ops.hpte_invalidate(hpte_group + gslot, vpn,
mmu_hash_ops.hpte_remove(hpte_group);
if (mmu_hash_ops.hpte_updatepp(gslot, rflags, vpn, MMU_PAGE_64K,
slot = mmu_hash_ops.hpte_insert(hpte_group, vpn, pa, rflags, 0,
slot = mmu_hash_ops.hpte_insert(hpte_group, vpn, pa,
mmu_hash_ops.hpte_remove(hpte_group);
ret = mmu_hash_ops.hpte_updatepp(slot, rflags, vpn,
slot = mmu_hash_ops.hpte_insert(hpte_group, vpn, pa, rflags, 0,
slot = mmu_hash_ops.hpte_insert(hpte_group, vpn, pa,
mmu_hash_ops.hpte_remove(hpte_group);
mmu_hash_ops.hpte_invalidate = native_hpte_invalidate;
mmu_hash_ops.hpte_updatepp = native_hpte_updatepp;
mmu_hash_ops.hpte_updateboltedpp = native_hpte_updateboltedpp;
mmu_hash_ops.hpte_removebolted = native_hpte_removebolted;
mmu_hash_ops.hpte_insert = native_hpte_insert;
mmu_hash_ops.hpte_remove = native_hpte_remove;
mmu_hash_ops.hpte_clear_all = native_hpte_clear;
mmu_hash_ops.flush_hash_range = native_flush_hash_range;
mmu_hash_ops.hugepage_invalidate = native_hugepage_invalidate;
mmu_hash_ops.hpte_updateboltedpp(newpp, idx, mmu_linear_psize,
if (!mmu_hash_ops.resize_hpt)
return mmu_hash_ops.resize_hpt(target_hpt_shift);
struct mmu_hash_ops mmu_hash_ops __ro_after_init;
EXPORT_SYMBOL(mmu_hash_ops);
if (is_fadump_active() && mmu_hash_ops.hpte_clear_all)
mmu_hash_ops.hpte_clear_all();
if (!mmu_hash_ops.hpte_insert)
mmu_hash_ops.hpte_invalidate(gslot, vpn, psize, psize,
if (mmu_hash_ops.hugepage_invalidate) {
mmu_hash_ops.hugepage_invalidate(vsid, s_addr, hpte_slot_array,
mmu_hash_ops.hpte_invalidate(slot, vpn, psize,
if (mmu_hash_ops.flush_hash_range)
mmu_hash_ops.flush_hash_range(number, local);
slot = mmu_hash_ops.hpte_insert(hpte_group, vpn, pa, rflags, vflags,
slot = mmu_hash_ops.hpte_insert(hpte_group, vpn, pa, rflags,
mmu_hash_ops.hpte_remove(hpte_group);
if (mmu_hash_ops.hpte_remove(last_group) == -1)
if (mmu_hash_ops.hpte_remove(last_group) == -1)
if (!mmu_hash_ops.resize_hpt)
ret = mmu_hash_ops.resize_hpt(val);
mmu_hash_ops.hpte_invalidate(slot, vpn, mmu_linear_psize,
BUG_ON(!mmu_hash_ops.hpte_insert);
ret = mmu_hash_ops.hpte_insert(hpteg, vpn, paddr, tprot,
ret = mmu_hash_ops.hpte_remove(hpteg);
ret = mmu_hash_ops.hpte_insert(hpteg, vpn, paddr, tprot,
if (!mmu_hash_ops.hpte_removebolted)
rc = mmu_hash_ops.hpte_removebolted(vaddr, psize, ssize);
if (mmu_hash_ops.hpte_updatepp(gslot, rflags, vpn, mmu_psize,
else if (mmu_hash_ops.hpte_clear_all)
mmu_hash_ops.hpte_clear_all();
mmu_hash_ops.hpte_invalidate = ps3_hpte_invalidate;
mmu_hash_ops.hpte_updatepp = ps3_hpte_updatepp;
mmu_hash_ops.hpte_updateboltedpp = ps3_hpte_updateboltedpp;
mmu_hash_ops.hpte_insert = ps3_hpte_insert;
mmu_hash_ops.hpte_remove = ps3_hpte_remove;
mmu_hash_ops.hpte_clear_all = ps3_hpte_clear;
mmu_hash_ops.hpte_invalidate = pSeries_lpar_hpte_invalidate;
mmu_hash_ops.hpte_updatepp = pSeries_lpar_hpte_updatepp;
mmu_hash_ops.hpte_updateboltedpp = pSeries_lpar_hpte_updateboltedpp;
mmu_hash_ops.hpte_insert = pSeries_lpar_hpte_insert;
mmu_hash_ops.hpte_remove = pSeries_lpar_hpte_remove;
mmu_hash_ops.hpte_removebolted = pSeries_lpar_hpte_removebolted;
mmu_hash_ops.flush_hash_range = pSeries_lpar_flush_hash_range;
mmu_hash_ops.hpte_clear_all = pseries_hpte_clear_all;
mmu_hash_ops.hugepage_invalidate = pSeries_lpar_hugepage_invalidate;
mmu_hash_ops.resize_hpt = pseries_lpar_resize_hpt;