x86/p2m: set_{foreign,mmio}_p2m_entry() are HVM-only

Extend a respective #ifdef from inside set_typed_p2m_entry() to around
all three functions. Add ASSERT_UNREACHABLE() to the latter one's safety
check path.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
This commit is contained in:
Jan Beulich committed 2021-05-03 15:17:19 +02:00
1 parent 1f8ee4cb43
commit e7f062e246
1 file changed
+7 -2
+7 -2
View File
@@ -1260,6 +1260,8 @@ int p2m_finish_type_change(struct domain *d,
return rc;
}
#ifdef CONFIG_HVM
/*
* Returns:
* 0 for success
@@ -1280,7 +1282,10 @@ static int set_typed_p2m_entry(struct domain *d, unsigned long gfn_l,
struct p2m_domain *p2m = p2m_get_hostp2m(d);
if ( !paging_mode_translate(d) )
{
ASSERT_UNREACHABLE();
return -EIO;
}
gfn_lock(p2m, gfn, order);
omfn = p2m->get_entry(p2m, gfn, &ot, &a, 0, &cur_order, NULL);
@@ -1313,7 +1318,6 @@ static int set_typed_p2m_entry(struct domain *d, unsigned long gfn_l,
if ( rc )
gdprintk(XENLOG_ERR, "p2m_set_entry: %#lx:%u -> %d (0x%"PRI_mfn")\n",
gfn_l, order, rc, mfn_x(mfn));
#ifdef CONFIG_HVM
else if ( p2m_is_pod(ot) )
{
pod_lock(p2m);
@@ -1321,7 +1325,6 @@ static int set_typed_p2m_entry(struct domain *d, unsigned long gfn_l,
BUG_ON(p2m->pod.entry_count < 0);
pod_unlock(p2m);
}
#endif
gfn_unlock(p2m, gfn, order);
return rc;
@@ -1349,6 +1352,8 @@ int set_mmio_p2m_entry(struct domain *d, gfn_t gfn, mfn_t mfn,
p2m_get_hostp2m(d)->default_access);
}
#endif /* CONFIG_HVM */
int set_identity_p2m_entry(struct domain *d, unsigned long gfn_l,
p2m_access_t p2ma, unsigned int flag)
{
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.