Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f58c9df7 authored by Huang Ying's avatar Huang Ying Committed by Marcelo Tosatti
Browse files

mm: remove is_hwpoison_address



Unused.

Signed-off-by: default avatarHuang Ying <ying.huang@intel.com>
Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
parent fafc3dba
Loading
Loading
Loading
Loading
+0 −8
Original line number Diff line number Diff line
@@ -1625,14 +1625,6 @@ extern int sysctl_memory_failure_recovery;
extern void shake_page(struct page *p, int access);
extern atomic_long_t mce_bad_pages;
extern int soft_offline_page(struct page *page, int flags);
#ifdef CONFIG_MEMORY_FAILURE
int is_hwpoison_address(unsigned long addr);
#else
static inline int is_hwpoison_address(unsigned long addr)
{
	return 0;
}
#endif

extern void dump_page(struct page *page);

+0 −32
Original line number Diff line number Diff line
@@ -1487,35 +1487,3 @@ int soft_offline_page(struct page *page, int flags)
	/* keep elevated page count for bad page */
	return ret;
}

/*
 * The caller must hold current->mm->mmap_sem in read mode.
 */
int is_hwpoison_address(unsigned long addr)
{
	pgd_t *pgdp;
	pud_t pud, *pudp;
	pmd_t pmd, *pmdp;
	pte_t pte, *ptep;
	swp_entry_t entry;

	pgdp = pgd_offset(current->mm, addr);
	if (!pgd_present(*pgdp))
		return 0;
	pudp = pud_offset(pgdp, addr);
	pud = *pudp;
	if (!pud_present(pud) || pud_large(pud))
		return 0;
	pmdp = pmd_offset(pudp, addr);
	pmd = *pmdp;
	if (!pmd_present(pmd) || pmd_large(pmd))
		return 0;
	ptep = pte_offset_map(pmdp, addr);
	pte = *ptep;
	pte_unmap(ptep);
	if (!is_swap_pte(pte))
		return 0;
	entry = pte_to_swp_entry(pte);
	return is_hwpoison_entry(entry);
}
EXPORT_SYMBOL_GPL(is_hwpoison_address);