Commit f0fe50f5 authored by Lei Yilong's avatar Lei Yilong Committed by guzitao
Browse files

sw64: kvm: fix pmd_trans_cont

Sunway inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/IBDJNZ



--------------------------------

If CONFIG_TRANSPARENT_HUGEPAGE=n, it fails to complie because
pmd_trans_cont() is undefined.

Signed-off-by: default avatarLei Yilong <leiyilong@wxiat.com>
Reviewed-by: default avatarHe Sheng <hesheng@wxiat.com>
Signed-off-by: default avatarGu Zitao <guzitao@wxiat.com>
parent 8a478fb5
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -633,6 +633,11 @@ static inline int pte_devmap(pte_t a)
}
#endif

static inline int pmd_cont(pmd_t pmd)
{
	return !!(pmd_val(pmd) & _PAGE_CONT);
}

#ifdef CONFIG_TRANSPARENT_HUGEPAGE

/* We don't have hardware dirty/accessed bits, generic_pmdp_establish is fine.*/
@@ -643,11 +648,6 @@ static inline int pmd_trans_splitting(pmd_t pmd)
	return !!(pmd_val(pmd) & _PAGE_SPLITTING);
}

static inline int pmd_trans_cont(pmd_t pmd)
{
	return !!(pmd_val(pmd) & _PAGE_CONT);
}

static inline int pmd_trans_huge(pmd_t pmd)
{
	return !!(pmd_val(pmd) & _PAGE_LEAF);
+2 −2
Original line number Diff line number Diff line
@@ -73,7 +73,7 @@ static void apt_dissolve_pmd(struct kvm *kvm, phys_addr_t addr, pmd_t *pmd)
	if (!pmd_trans_huge(*pmd))
		return;

	if (pmd_trans_cont(*pmd)) {
	if (pmd_cont(*pmd)) {
		for (i = 0; i < CONT_PMDS; i++, pmd++)
			pmd_clear(pmd);
	} else
@@ -178,7 +178,7 @@ static void unmap_apt_pmds(struct kvm *kvm, pud_t *pud,
		next = pmd_addr_end(addr, end);
		if (!pmd_none(*pmd)) {
			if (pmd_trans_huge(*pmd)) {
				if (pmd_trans_cont(*pmd)) {
				if (pmd_cont(*pmd)) {
					for (i = 0; i < CONT_PMDS; i++, pmd++)
						pmd_clear(pmd);
				} else