H_PAGE_HASHPTE
#define _PAGE_HPTEFLAGS (H_PAGE_BUSY | H_PAGE_HASHPTE | \
#define _PAGE_HPTEFLAGS (H_PAGE_BUSY | H_PAGE_HASHPTE | H_PAGE_COMBO)
if (old & H_PAGE_HASHPTE)
if ((pmd_raw(*pmdp) & cpu_to_be64(_PAGE_ACCESSED | H_PAGE_HASHPTE)) == 0)
if ((pud_raw(*pudp) & cpu_to_be64(_PAGE_ACCESSED | H_PAGE_HASHPTE)) == 0)
if ((pte_raw(*ptep) & cpu_to_be64(_PAGE_ACCESSED | H_PAGE_HASHPTE)) == 0)
WARN_ON((pmd_val(*pmdp) & (H_PAGE_HASHPTE | _PAGE_PTE)) == (H_PAGE_HASHPTE | _PAGE_PTE));
WARN_ON((pud_val(*pudp) & (H_PAGE_HASHPTE | _PAGE_PTE)) == (H_PAGE_HASHPTE | _PAGE_PTE));
new_pte = (new_pte & ~_PAGE_HPTEFLAGS) | H_PAGE_HASHPTE;
if (unlikely(old_pte & H_PAGE_HASHPTE)) {
if (likely(!(old_pte & H_PAGE_HASHPTE))) {
old_pte &= ~H_PAGE_HASHPTE;
new_pte &= ~H_PAGE_HASHPTE;
new_pte |= H_PAGE_HASHPTE;
if (unlikely(old_pte & H_PAGE_HASHPTE)) {
if (likely(!(old_pte & H_PAGE_HASHPTE))) {
new_pte = (new_pte & ~_PAGE_HPTEFLAGS) | H_PAGE_HASHPTE;
if (!(old_pte & H_PAGE_HASHPTE))
new_pmd |= H_PAGE_HASHPTE;
if ((old_pmd & H_PAGE_HASHPTE) && !(old_pmd & H_PAGE_COMBO)) {
if (old & H_PAGE_HASHPTE)
if (!(pte & H_PAGE_HASHPTE))
if (pteval & H_PAGE_HASHPTE)
if (likely(!(old_pte & H_PAGE_HASHPTE))) {
new_pte = (new_pte & ~_PAGE_HPTEFLAGS) | H_PAGE_HASHPTE;
if (unlikely(old_pte & H_PAGE_HASHPTE)) {
.mask = H_PAGE_HASHPTE,
.val = H_PAGE_HASHPTE,
if (((pteval & H_PAGE_HASHPTE) != H_PAGE_HASHPTE)