From: Zhou Guanghui <zhouguanghui1(a)huawei.com>
ascend inclusion
category: feature
bugzilla: NA
CVE: NA
-------------------------------------------------------------
The following functions are used only in the ascend scenario:
hugetlb_get_hstate,
hugetlb_alloc_hugepage,
hugetlb_insert_hugepage_pte,
hugetlb_insert_hugepage_pte_by_pa
Remove unused interface hugetlb_insert_hugepage
Signed-off-by: Zhou Guanghui <zhouguanghui1(a)huawei.com>
Reviewed-by: Kefeng Wang <wangkefeng.wang(a)huawei.com>
Signed-off-by: Yang Yingliang <yangyingliang(a)huawei.com>
---
include/linux/hugetlb.h | 37 +++++++++++++++++++++++++++----------
mm/hugetlb.c | 37 +------------------------------------
2 files changed, 28 insertions(+), 46 deletions(-)
diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h
index eefa6d42140d3..230f2eb6c4474 100644
--- a/include/linux/hugetlb.h
+++ b/include/linux/hugetlb.h
@@ -375,17 +375,31 @@ struct page *alloc_migrate_huge_page(struct hstate *h, gfp_t gfp_mask,
int huge_add_to_page_cache(struct page *page, struct address_space *mapping,
pgoff_t idx);
-#ifdef CONFIG_ARM64
+#ifdef CONFIG_ASCEND_FEATURES
const struct hstate *hugetlb_get_hstate(void);
struct page *hugetlb_alloc_hugepage(int nid);
int hugetlb_insert_hugepage_pte(struct mm_struct *mm, unsigned long addr,
pgprot_t prot, struct page *hpage);
-#endif
int hugetlb_insert_hugepage_pte_by_pa(struct mm_struct *mm,
unsigned long vir_addr,
pgprot_t prot, unsigned long phy_addr);
-int hugetlb_insert_hugepage(struct vm_area_struct *vma, unsigned long addr,
- struct page *hpage, pgprot_t prot);
+#else
+static inline const struct hstate *hugetlb_get_hstate(void)
+{
+ return NULL;
+}
+
+static inline struct page *hugetlb_alloc_hugepage(int nid)
+{
+ return NULL;
+}
+
+static inline int hugetlb_insert_hugepage_pte(struct mm_struct *mm,
+ unsigned long addr, pgprot_t prot, struct page *hpage)
+{
+ return -EPERM;
+}
+#endif
/* arch callback */
int __init __alloc_bootmem_huge_page(struct hstate *h);
@@ -637,12 +651,6 @@ static inline void set_huge_swap_pte_at(struct mm_struct *mm, unsigned long addr
{
}
-static inline int hugetlb_insert_hugepage_pte_by_pa(struct mm_struct *mm,
- unsigned long vir_addr,
- pgprot_t prot, unsigned long phy_addr)
-{
- return 0;
-}
#endif /* CONFIG_HUGETLB_PAGE */
static inline spinlock_t *huge_pte_lock(struct hstate *h,
@@ -655,6 +663,15 @@ static inline spinlock_t *huge_pte_lock(struct hstate *h,
return ptl;
}
+#ifndef CONFIG_ASCEND_FEATURES
+static inline int hugetlb_insert_hugepage_pte_by_pa(struct mm_struct *mm,
+ unsigned long vir_addr,
+ pgprot_t prot, unsigned long phy_addr)
+{
+ return -EPERM;
+}
+#endif
+
#ifdef CONFIG_ASCEND_SHARE_POOL
pte_t make_huge_pte(struct vm_area_struct *vma, struct page *page, int writable);
#endif
diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index 019dbae493e57..5c219f848db45 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -5234,7 +5234,7 @@ void move_hugetlb_state(struct page *oldpage, struct page *newpage, int reason)
}
}
-#ifdef CONFIG_ARM64
+#ifdef CONFIG_ASCEND_FEATURES
const struct hstate *hugetlb_get_hstate(void)
{
return &default_hstate;
@@ -5335,41 +5335,6 @@ int hugetlb_insert_hugepage_pte_by_pa(struct mm_struct *mm,
}
EXPORT_SYMBOL_GPL(hugetlb_insert_hugepage_pte_by_pa);
-int hugetlb_insert_hugepage(struct vm_area_struct *vma, unsigned long addr,
- struct page *hpage, pgprot_t prot)
-{
- struct hstate *h = hstate_vma(vma);
- int anon_rmap = 0;
- spinlock_t *ptl;
- pte_t *ptep;
- pte_t pte;
- struct mm_struct *mm = vma->vm_mm;
-
- ptep = hugetlb_huge_pte_alloc(mm, addr, huge_page_size(h));
- if (!ptep)
- return -ENXIO;
-
- get_page(hpage);
-
- ptl = huge_pte_lock(h, mm, ptep);
- if (anon_rmap) {
- ClearPagePrivate(hpage);
- hugepage_add_new_anon_rmap(hpage, vma, addr);
- } else {
- page_dup_rmap(hpage, true);
- }
-
- pte = make_huge_pte(vma, hpage, ((vma->vm_flags & VM_WRITE)
- && (vma->vm_flags & VM_SHARED)));
- set_huge_pte_at(mm, addr, ptep, pte);
-
- hugetlb_count_add(pages_per_huge_page(h), mm);
-
- spin_unlock(ptl);
-
- return 0;
-}
-
#ifdef CONFIG_ASCEND_CHARGE_MIGRATE_HUGEPAGES
static int __init ascend_enable_charge_migrate_hugepages(char *s)
--
2.25.1