|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [RFC PATCH v6 28/43] altp2m: Move altp2m_vcpu_{initialise,destroy} to common code
This commit moves the altp2m_vcpu_initialise and altp2m_vcpu_destroy
functions to common code. This makes it possible to use them in the common
implementation of HVMOP_altp2m_set_domain_state.
This commit contains only code movement, and no change in functionality is
intended.
This is commit 1/2 of the altp2m_vcpu_{initialise,destroy} phase.
Signed-off-by: Rose Spangler <Rose.Spangler@xxxxxxxxxxxxxx>
---
v6: Introduced this patch.
---
xen/arch/x86/include/asm/altp2m.h | 6 -----
xen/arch/x86/mm/altp2m.c | 41 -------------------------------
xen/common/altp2m.c | 41 +++++++++++++++++++++++++++++++
xen/include/xen/altp2m.h | 6 +++++
4 files changed, 47 insertions(+), 47 deletions(-)
diff --git a/xen/arch/x86/include/asm/altp2m.h
b/xen/arch/x86/include/asm/altp2m.h
index b3d348386a00..43dd5d2acd9c 100644
--- a/xen/arch/x86/include/asm/altp2m.h
+++ b/xen/arch/x86/include/asm/altp2m.h
@@ -105,10 +105,6 @@ int altp2m_get_effective_entry(struct p2m_domain *ap2m,
gfn_t gfn, mfn_t *mfn,
p2m_type_t *t, p2m_access_t *a,
bool prepopulate);
-/* Alternate p2m VCPU */
-void altp2m_vcpu_initialise(struct vcpu *v);
-void altp2m_vcpu_destroy(struct vcpu *v);
-
int altp2m_vcpu_enable_ve(struct vcpu *v, gfn_t gfn);
void altp2m_vcpu_disable_ve(struct vcpu *v);
@@ -151,8 +147,6 @@ static inline int _altp2m_get_effective_entry(struct
p2m_domain *ap2m,
/* Only declaration is needed. DCE will optimise it out when linking. */
uint16_t altp2m_vcpu_idx(const struct vcpu *v);
-void altp2m_vcpu_initialise(struct vcpu *v);
-void altp2m_vcpu_destroy(struct vcpu *v);
int altp2m_vcpu_enable_ve(struct vcpu *v, gfn_t gfn);
void altp2m_vcpu_disable_ve(struct vcpu *v);
diff --git a/xen/arch/x86/mm/altp2m.c b/xen/arch/x86/mm/altp2m.c
index 46374373848d..0542e3ef9196 100644
--- a/xen/arch/x86/mm/altp2m.c
+++ b/xen/arch/x86/mm/altp2m.c
@@ -14,47 +14,6 @@
#include "mm-locks.h"
#include "p2m.h"
-void
-altp2m_vcpu_initialise(struct vcpu *v)
-{
- if ( !v->domain->nr_altp2m )
- return;
-
- if ( v != current )
- vcpu_pause(v);
-
- vcpu_altp2m(v).p2midx = 0;
- atomic_inc(&altp2m_get_altp2m(v)->active_vcpus);
-
- altp2m_vcpu_update_p2m(v);
-
- if ( v != current )
- vcpu_unpause(v);
-}
-
-void
-altp2m_vcpu_destroy(struct vcpu *v)
-{
- struct p2m_domain *p2m;
-
- if ( !v->domain->nr_altp2m )
- return;
-
- if ( v != current )
- vcpu_pause(v);
-
- if ( (p2m = altp2m_get_altp2m(v)) )
- atomic_dec(&p2m->active_vcpus);
-
- altp2m_vcpu_disable_ve(v);
-
- vcpu_altp2m(v).p2midx = INVALID_ALTP2M;
- altp2m_vcpu_update_p2m(v);
-
- if ( v != current )
- vcpu_unpause(v);
-}
-
int altp2m_vcpu_enable_ve(struct vcpu *v, gfn_t gfn)
{
struct domain *d = v->domain;
diff --git a/xen/common/altp2m.c b/xen/common/altp2m.c
index a731ad7cdab8..e699b64678d8 100644
--- a/xen/common/altp2m.c
+++ b/xen/common/altp2m.c
@@ -59,6 +59,47 @@ void altp2m_teardown(struct domain *d)
XVFREE(d->altp2m_p2m);
}
+#ifdef CONFIG_X86
+void altp2m_vcpu_initialise(struct vcpu *v)
+{
+ if ( !v->domain->nr_altp2m )
+ return;
+
+ if ( v != current )
+ vcpu_pause(v);
+
+ vcpu_altp2m(v).p2midx = 0;
+ atomic_inc(&altp2m_get_altp2m(v)->active_vcpus);
+
+ altp2m_vcpu_update_p2m(v);
+
+ if ( v != current )
+ vcpu_unpause(v);
+}
+
+void altp2m_vcpu_destroy(struct vcpu *v)
+{
+ struct p2m_domain *p2m;
+
+ if ( !v->domain->nr_altp2m )
+ return;
+
+ if ( v != current )
+ vcpu_pause(v);
+
+ if ( (p2m = altp2m_get_altp2m(v)) )
+ atomic_dec(&p2m->active_vcpus);
+
+ altp2m_vcpu_disable_ve(v);
+
+ vcpu_altp2m(v).p2midx = INVALID_ALTP2M;
+ altp2m_vcpu_update_p2m(v);
+
+ if ( v != current )
+ vcpu_unpause(v);
+}
+#endif
+
/*
* altp2m operations are envisioned as being used in several different
* modes:
diff --git a/xen/include/xen/altp2m.h b/xen/include/xen/altp2m.h
index f5a4d0e60562..7defe6126563 100644
--- a/xen/include/xen/altp2m.h
+++ b/xen/include/xen/altp2m.h
@@ -24,6 +24,12 @@ int altp2m_init(struct domain *d);
/* Free altp2m views */
void altp2m_teardown(struct domain *d);
+#ifdef CONFIG_X86
+/* Alternate p2m VCPU */
+void altp2m_vcpu_initialise(struct vcpu *v);
+void altp2m_vcpu_destroy(struct vcpu *v);
+#endif
+
#ifdef CONFIG_ALTP2M
/* Alternate p2m HVM on/off per domain */
--
2.34.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |