|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v5 16/23] x86/mm: add pv prefix to {alloc, free}_page_type
And move the declarations to pv/mm.h. The code will be moved later.
The stubs contain BUG() because they aren't supposed to be called when
PV is disabled.
Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
---
xen/arch/x86/domain.c | 2 +-
xen/arch/x86/mm.c | 14 +++++++-------
xen/include/asm-x86/mm.h | 3 ---
xen/include/asm-x86/pv/mm.h | 12 ++++++++++++
4 files changed, 20 insertions(+), 11 deletions(-)
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
index e9367bd8aa..3abd37e4dc 100644
--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1812,7 +1812,7 @@ static int relinquish_memory(
if ( likely(y == x) )
{
/* No need for atomic update of type_info here: noone else
updates it. */
- switch ( ret = free_page_type(page, x, 1) )
+ switch ( ret = pv_free_page_type(page, x, 1) )
{
case 0:
break;
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 3a919c19b8..86c7466fa0 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -1987,8 +1987,8 @@ static void get_page_light(struct page_info *page)
while ( unlikely(y != x) );
}
-static int alloc_page_type(struct page_info *page, unsigned long type,
- int preemptible)
+int pv_alloc_page_type(struct page_info *page, unsigned long type,
+ int preemptible)
{
struct domain *owner = page_get_owner(page);
int rc;
@@ -2017,7 +2017,7 @@ static int alloc_page_type(struct page_info *page,
unsigned long type,
rc = alloc_segdesc_page(page);
break;
default:
- printk("Bad type in alloc_page_type %lx t=%" PRtype_info " c=%lx\n",
+ printk("Bad type in %s %lx t=%" PRtype_info " c=%lx\n", __func__,
type, page->u.inuse.type_info,
page->count_info);
rc = -EINVAL;
@@ -2061,8 +2061,8 @@ static int alloc_page_type(struct page_info *page,
unsigned long type,
}
-int free_page_type(struct page_info *page, unsigned long type,
- int preemptible)
+int pv_free_page_type(struct page_info *page, unsigned long type,
+ int preemptible)
{
struct domain *owner = page_get_owner(page);
unsigned long gmfn;
@@ -2119,7 +2119,7 @@ int free_page_type(struct page_info *page, unsigned long
type,
static int __put_final_page_type(
struct page_info *page, unsigned long type, int preemptible)
{
- int rc = free_page_type(page, type, preemptible);
+ int rc = pv_free_page_type(page, type, preemptible);
/* No need for atomic update of type_info here: noone else updates it. */
if ( rc == 0 )
@@ -2337,7 +2337,7 @@ static int __get_page_type(struct page_info *page,
unsigned long type,
page->nr_validated_ptes = 0;
page->partial_pte = 0;
}
- rc = alloc_page_type(page, type, preemptible);
+ rc = pv_alloc_page_type(page, type, preemptible);
}
if ( (x & PGT_partial) && !(nx & PGT_partial) )
diff --git a/xen/include/asm-x86/mm.h b/xen/include/asm-x86/mm.h
index f2e0f498c4..56b2b94195 100644
--- a/xen/include/asm-x86/mm.h
+++ b/xen/include/asm-x86/mm.h
@@ -326,9 +326,6 @@ static inline void *__page_to_virt(const struct page_info
*pg)
(PAGE_SIZE / (sizeof(*pg) & -sizeof(*pg))));
}
-int free_page_type(struct page_info *page, unsigned long type,
- int preemptible);
-
bool fill_ro_mpt(mfn_t mfn);
void zap_ro_mpt(mfn_t mfn);
diff --git a/xen/include/asm-x86/pv/mm.h b/xen/include/asm-x86/pv/mm.h
index 4944a70c7a..0cd8beec39 100644
--- a/xen/include/asm-x86/pv/mm.h
+++ b/xen/include/asm-x86/pv/mm.h
@@ -32,6 +32,11 @@ bool pv_map_ldt_shadow_page(unsigned int off);
void pv_arch_init_memory(void);
+int pv_alloc_page_type(struct page_info *page, unsigned long type,
+ int preemptible);
+int pv_free_page_type(struct page_info *page, unsigned long type,
+ int preemptible);
+
#else
#include <xen/errno.h>
@@ -51,6 +56,13 @@ static inline bool pv_map_ldt_shadow_page(unsigned int off)
{ return false; }
static inline void pv_arch_init_memory(void) {}
+static inline int pv_alloc_page_type(struct page_info *page, unsigned long
type,
+ int preemptible)
+{ BUG(); return -EINVAL; }
+static inline int pv_free_page_type(struct page_info *page, unsigned long type,
+ int preemptible)
+{ BUG(); return -EINVAL; }
+
#endif
#endif /* __X86_PV_MM_H__ */
--
2.11.0
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |