|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] xenmem_add_to_physmap_one() has no need to know of XENMAPSPACE_gmfn_range
commit a3da661ad4b5331ef3a4398898c2f5d47b5a0698
Author: Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Wed Jan 31 12:34:08 2018 +0100
Commit: Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Wed Jan 31 12:34:08 2018 +0100
xenmem_add_to_physmap_one() has no need to know of XENMAPSPACE_gmfn_range
As its name says, it handles a single GMFN only anyway. Note that ARM
needs no adjustment, as it doesn't handle the two types at all.
Also take the opportunity and clean up the handling of XENMAPSPACE_gmfn
a little: There's no point in going through "idx" when capturing the MFN.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
Acked-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
xen/arch/x86/mm.c | 11 ++++-------
xen/common/memory.c | 2 +-
2 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index c732734..66ea822 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -4105,20 +4105,18 @@ int xenmem_add_to_physmap_one(
if ( rc )
return rc;
break;
- case XENMAPSPACE_gmfn_range:
case XENMAPSPACE_gmfn:
{
p2m_type_t p2mt;
gfn = idx;
- idx = mfn_x(get_gfn_unshare(d, idx, &p2mt));
+ mfn = get_gfn_unshare(d, gfn, &p2mt);
/* If the page is still shared, exit early */
if ( p2m_is_shared(p2mt) )
{
put_gfn(d, gfn);
return -ENOMEM;
}
- mfn = _mfn(idx);
page = get_page_from_mfn(mfn, d);
if ( unlikely(!page) )
mfn = INVALID_MFN;
@@ -4156,8 +4154,7 @@ int xenmem_add_to_physmap_one(
/* Unmap from old location, if any. */
old_gpfn = get_gpfn_from_mfn(mfn_x(mfn));
ASSERT( old_gpfn != SHARED_M2P_ENTRY );
- if ( (space == XENMAPSPACE_gmfn || space == XENMAPSPACE_gmfn_range) &&
- old_gpfn != gfn )
+ if ( space == XENMAPSPACE_gmfn && old_gpfn != gfn )
{
rc = -EXDEV;
goto put_both;
@@ -4170,8 +4167,8 @@ int xenmem_add_to_physmap_one(
rc = guest_physmap_add_page(d, gpfn, mfn, PAGE_ORDER_4K);
put_both:
- /* In the XENMAPSPACE_gmfn, we took a ref of the gfn at the top */
- if ( space == XENMAPSPACE_gmfn || space == XENMAPSPACE_gmfn_range )
+ /* In the XENMAPSPACE_gmfn case, we took a ref of the gfn at the top. */
+ if ( space == XENMAPSPACE_gmfn )
put_gfn(d, gfn);
if ( page )
diff --git a/xen/common/memory.c b/xen/common/memory.c
index 09549ab..59d23a2 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -800,7 +800,7 @@ int xenmem_add_to_physmap(struct domain *d, struct
xen_add_to_physmap *xatp,
while ( xatp->size > done )
{
- rc = xenmem_add_to_physmap_one(d, xatp->space, extra,
+ rc = xenmem_add_to_physmap_one(d, XENMAPSPACE_gmfn, extra,
xatp->idx, _gfn(xatp->gpfn));
if ( rc < 0 )
break;
--
generated by git-patchbot for /home/xen/git/xen.git#master
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |