xen: Make functions static
authorJuergen Gross <jgross@suse.com>
Fri, 28 Nov 2014 10:53:51 +0000 (11:53 +0100)
committerDavid Vrabel <david.vrabel@citrix.com>
Thu, 4 Dec 2014 14:08:37 +0000 (14:08 +0000)
Some functions in arch/x86/xen/p2m.c are used locally only. Make them
static. Rearrange the functions in p2m.c to avoid forward declarations.

Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
arch/x86/include/asm/xen/page.h
arch/x86/xen/p2m.c

index f58ef6c..5a65a75 100644 (file)
@@ -52,15 +52,9 @@ extern unsigned long set_phys_range_identity(unsigned long pfn_s,
 extern int set_foreign_p2m_mapping(struct gnttab_map_grant_ref *map_ops,
                                   struct gnttab_map_grant_ref *kmap_ops,
                                   struct page **pages, unsigned int count);
-extern int m2p_add_override(unsigned long mfn, struct page *page,
-                           struct gnttab_map_grant_ref *kmap_op);
 extern int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops,
                                     struct gnttab_map_grant_ref *kmap_ops,
                                     struct page **pages, unsigned int count);
-extern int m2p_remove_override(struct page *page,
-                              struct gnttab_map_grant_ref *kmap_op,
-                              unsigned long mfn);
-extern struct page *m2p_find_override(unsigned long mfn);
 extern unsigned long m2p_find_override_pfn(unsigned long mfn, unsigned long pfn);
 
 static inline unsigned long pfn_to_mfn(unsigned long pfn)
index 04814c6..2d8b908 100644 (file)
@@ -896,68 +896,9 @@ static unsigned long mfn_hash(unsigned long mfn)
        return hash_long(mfn, M2P_OVERRIDE_HASH_SHIFT);
 }
 
-int set_foreign_p2m_mapping(struct gnttab_map_grant_ref *map_ops,
-                           struct gnttab_map_grant_ref *kmap_ops,
-                           struct page **pages, unsigned int count)
-{
-       int i, ret = 0;
-       bool lazy = false;
-       pte_t *pte;
-
-       if (xen_feature(XENFEAT_auto_translated_physmap))
-               return 0;
-
-       if (kmap_ops &&
-           !in_interrupt() &&
-           paravirt_get_lazy_mode() == PARAVIRT_LAZY_NONE) {
-               arch_enter_lazy_mmu_mode();
-               lazy = true;
-       }
-
-       for (i = 0; i < count; i++) {
-               unsigned long mfn, pfn;
-
-               /* Do not add to override if the map failed. */
-               if (map_ops[i].status)
-                       continue;
-
-               if (map_ops[i].flags & GNTMAP_contains_pte) {
-                       pte = (pte_t *)(mfn_to_virt(PFN_DOWN(map_ops[i].host_addr)) +
-                               (map_ops[i].host_addr & ~PAGE_MASK));
-                       mfn = pte_mfn(*pte);
-               } else {
-                       mfn = PFN_DOWN(map_ops[i].dev_bus_addr);
-               }
-               pfn = page_to_pfn(pages[i]);
-
-               WARN_ON(PagePrivate(pages[i]));
-               SetPagePrivate(pages[i]);
-               set_page_private(pages[i], mfn);
-               pages[i]->index = pfn_to_mfn(pfn);
-
-               if (unlikely(!set_phys_to_machine(pfn, FOREIGN_FRAME(mfn)))) {
-                       ret = -ENOMEM;
-                       goto out;
-               }
-
-               if (kmap_ops) {
-                       ret = m2p_add_override(mfn, pages[i], &kmap_ops[i]);
-                       if (ret)
-                               goto out;
-               }
-       }
-
-out:
-       if (lazy)
-               arch_leave_lazy_mmu_mode();
-
-       return ret;
-}
-EXPORT_SYMBOL_GPL(set_foreign_p2m_mapping);
-
 /* Add an MFN override for a particular page */
-int m2p_add_override(unsigned long mfn, struct page *page,
-               struct gnttab_map_grant_ref *kmap_op)
+static int m2p_add_override(unsigned long mfn, struct page *page,
+                           struct gnttab_map_grant_ref *kmap_op)
 {
        unsigned long flags;
        unsigned long pfn;
@@ -1009,14 +950,14 @@ int m2p_add_override(unsigned long mfn, struct page *page,
 
        return 0;
 }
-EXPORT_SYMBOL_GPL(m2p_add_override);
 
-int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops,
-                             struct gnttab_map_grant_ref *kmap_ops,
-                             struct page **pages, unsigned int count)
+int set_foreign_p2m_mapping(struct gnttab_map_grant_ref *map_ops,
+                           struct gnttab_map_grant_ref *kmap_ops,
+                           struct page **pages, unsigned int count)
 {
        int i, ret = 0;
        bool lazy = false;
+       pte_t *pte;
 
        if (xen_feature(XENFEAT_auto_translated_physmap))
                return 0;
@@ -1029,35 +970,71 @@ int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops,
        }
 
        for (i = 0; i < count; i++) {
-               unsigned long mfn = get_phys_to_machine(page_to_pfn(pages[i]));
-               unsigned long pfn = page_to_pfn(pages[i]);
+               unsigned long mfn, pfn;
 
-               if (mfn == INVALID_P2M_ENTRY || !(mfn & FOREIGN_FRAME_BIT)) {
-                       ret = -EINVAL;
-                       goto out;
+               /* Do not add to override if the map failed. */
+               if (map_ops[i].status)
+                       continue;
+
+               if (map_ops[i].flags & GNTMAP_contains_pte) {
+                       pte = (pte_t *)(mfn_to_virt(PFN_DOWN(map_ops[i].host_addr)) +
+                               (map_ops[i].host_addr & ~PAGE_MASK));
+                       mfn = pte_mfn(*pte);
+               } else {
+                       mfn = PFN_DOWN(map_ops[i].dev_bus_addr);
                }
+               pfn = page_to_pfn(pages[i]);
 
-               set_page_private(pages[i], INVALID_P2M_ENTRY);
-               WARN_ON(!PagePrivate(pages[i]));
-               ClearPagePrivate(pages[i]);
-               set_phys_to_machine(pfn, pages[i]->index);
+               WARN_ON(PagePrivate(pages[i]));
+               SetPagePrivate(pages[i]);
+               set_page_private(pages[i], mfn);
+               pages[i]->index = pfn_to_mfn(pfn);
 
-               if (kmap_ops)
-                       ret = m2p_remove_override(pages[i], &kmap_ops[i], mfn);
-               if (ret)
+               if (unlikely(!set_phys_to_machine(pfn, FOREIGN_FRAME(mfn)))) {
+                       ret = -ENOMEM;
                        goto out;
+               }
+
+               if (kmap_ops) {
+                       ret = m2p_add_override(mfn, pages[i], &kmap_ops[i]);
+                       if (ret)
+                               goto out;
+               }
        }
 
 out:
        if (lazy)
                arch_leave_lazy_mmu_mode();
+
        return ret;
 }
-EXPORT_SYMBOL_GPL(clear_foreign_p2m_mapping);
+EXPORT_SYMBOL_GPL(set_foreign_p2m_mapping);
 
-int m2p_remove_override(struct page *page,
-                       struct gnttab_map_grant_ref *kmap_op,
-                       unsigned long mfn)
+static struct page *m2p_find_override(unsigned long mfn)
+{
+       unsigned long flags;
+       struct list_head *bucket = &m2p_overrides[mfn_hash(mfn)];
+       struct page *p, *ret;
+
+       ret = NULL;
+
+       spin_lock_irqsave(&m2p_override_lock, flags);
+
+       list_for_each_entry(p, bucket, lru) {
+               if (page_private(p) == mfn) {
+                       ret = p;
+                       break;
+               }
+       }
+
+       spin_unlock_irqrestore(&m2p_override_lock, flags);
+
+       return ret;
+}
+
+static int m2p_remove_override(struct page *page,
+                              struct gnttab_map_grant_ref *kmap_op,
+                              unsigned long mfn)
 {
        unsigned long flags;
        unsigned long pfn;
@@ -1150,29 +1127,50 @@ int m2p_remove_override(struct page *page,
 
        return 0;
 }
-EXPORT_SYMBOL_GPL(m2p_remove_override);
 
-struct page *m2p_find_override(unsigned long mfn)
+int clear_foreign_p2m_mapping(struct gnttab_unmap_grant_ref *unmap_ops,
+                             struct gnttab_map_grant_ref *kmap_ops,
+                             struct page **pages, unsigned int count)
 {
-       unsigned long flags;
-       struct list_head *bucket = &m2p_overrides[mfn_hash(mfn)];
-       struct page *p, *ret;
+       int i, ret = 0;
+       bool lazy = false;
 
-       ret = NULL;
+       if (xen_feature(XENFEAT_auto_translated_physmap))
+               return 0;
 
-       spin_lock_irqsave(&m2p_override_lock, flags);
+       if (kmap_ops &&
+           !in_interrupt() &&
+           paravirt_get_lazy_mode() == PARAVIRT_LAZY_NONE) {
+               arch_enter_lazy_mmu_mode();
+               lazy = true;
+       }
 
-       list_for_each_entry(p, bucket, lru) {
-               if (page_private(p) == mfn) {
-                       ret = p;
-                       break;
+       for (i = 0; i < count; i++) {
+               unsigned long mfn = get_phys_to_machine(page_to_pfn(pages[i]));
+               unsigned long pfn = page_to_pfn(pages[i]);
+
+               if (mfn == INVALID_P2M_ENTRY || !(mfn & FOREIGN_FRAME_BIT)) {
+                       ret = -EINVAL;
+                       goto out;
                }
-       }
 
-       spin_unlock_irqrestore(&m2p_override_lock, flags);
+               set_page_private(pages[i], INVALID_P2M_ENTRY);
+               WARN_ON(!PagePrivate(pages[i]));
+               ClearPagePrivate(pages[i]);
+               set_phys_to_machine(pfn, pages[i]->index);
 
+               if (kmap_ops)
+                       ret = m2p_remove_override(pages[i], &kmap_ops[i], mfn);
+               if (ret)
+                       goto out;
+       }
+
+out:
+       if (lazy)
+               arch_leave_lazy_mmu_mode();
        return ret;
 }
+EXPORT_SYMBOL_GPL(clear_foreign_p2m_mapping);
 
 unsigned long m2p_find_override_pfn(unsigned long mfn, unsigned long pfn)
 {