|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 08/16] x86/P2M: PoD, altp2m, and nested-p2m are HVM-only
There's no need to initialize respective data for PV domains. Note that
p2m_teardown_{alt,nested}p2m() will handle the lack-of-initialization
case fine.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
--- a/xen/arch/x86/mm/p2m.c
+++ b/xen/arch/x86/mm/p2m.c
@@ -102,6 +102,9 @@ static int p2m_initialise(struct domain
p2m->default_access = p2m_access_rwx;
p2m->p2m_class = p2m_host;
+ if ( !is_hvm_domain(d) )
+ return 0;
+
p2m_pod_init(p2m);
p2m_nestedp2m_init(p2m);
@@ -259,7 +262,7 @@ int p2m_init(struct domain *d)
int rc;
rc = p2m_init_hostp2m(d);
- if ( rc )
+ if ( rc || !is_hvm_domain(d) )
return rc;
#ifdef CONFIG_HVM
--- a/xen/arch/x86/mm/p2m.h
+++ b/xen/arch/x86/mm/p2m.h
@@ -17,6 +17,8 @@
#include <xen/mem_access.h>
+void p2m_pod_init(struct p2m_domain *p2m);
+
int p2m_add_identity_entry(struct domain *d, unsigned long gfn,
p2m_access_t p2ma, unsigned int flag);
int p2m_remove_identity_entry(struct domain *d, unsigned long gfn);
--- a/xen/arch/x86/mm/p2m-pod.c
+++ b/xen/arch/x86/mm/p2m-pod.c
@@ -1135,6 +1135,12 @@ p2m_pod_demand_populate(struct p2m_domai
mfn_t mfn;
unsigned long i;
+ if ( !p2m_is_hostp2m(p2m) )
+ {
+ ASSERT_UNREACHABLE();
+ return false;
+ }
+
ASSERT(gfn_locked_by_me(p2m, gfn));
pod_lock(p2m);
--- a/xen/include/asm-x86/p2m.h
+++ b/xen/include/asm-x86/p2m.h
@@ -679,8 +679,6 @@ static inline long p2m_pod_entry_count(c
return p2m->pod.entry_count;
}
-void p2m_pod_init(struct p2m_domain *p2m);
-
#else
static inline bool
@@ -709,8 +707,6 @@ static inline long p2m_pod_entry_count(c
return 0;
}
-static inline void p2m_pod_init(struct p2m_domain *p2m) {}
-
#endif
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |