mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
x86/p2m: please Clang after making certain parts HVM-only
Move a few #ifdef-s, to account for diagnostics like
p2m.c:549:1: error: non-void function does not return a value in all control paths [-Werror,-Wreturn-type]
which appear despite paging_mode_translate() resolving to constant
"false" when !HVM. All of the affected functions are intended to become
fully HVM-only anyway, with their non-translated stub handling split off
elsewhere.
Fixes: 8d012d3ddf ("x86/p2m: {get,set}_entry hooks and p2m-pt.c are HVM-only")
Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
This commit is contained in:
1 parent
e19b01c186
commit
09fc903c5a
1 file changed
+14
-12
+14
-12
@@ -497,21 +497,23 @@ mfn_t __get_gfn_type_access(struct p2m_domain *p2m, unsigned long gfn_l,
|
||||
#ifdef CONFIG_HVM
|
||||
mfn_t mfn;
|
||||
gfn_t gfn = _gfn(gfn_l);
|
||||
#endif
|
||||
|
||||
/* Unshare makes no sense withuot populate. */
|
||||
if ( q & P2M_UNSHARE )
|
||||
q |= P2M_ALLOC;
|
||||
|
||||
if ( !p2m || !paging_mode_translate(p2m->domain) )
|
||||
{
|
||||
/* Not necessarily true, but for non-translated guests, we claim
|
||||
* it's the most generic kind of memory */
|
||||
#endif
|
||||
/*
|
||||
* Not necessarily true, but for non-translated guests we claim
|
||||
* it's the most generic kind of memory.
|
||||
*/
|
||||
*t = p2m_ram_rw;
|
||||
return _mfn(gfn_l);
|
||||
#ifdef CONFIG_HVM
|
||||
}
|
||||
|
||||
#ifdef CONFIG_HVM
|
||||
/* Unshare makes no sense without populate. */
|
||||
if ( q & P2M_UNSHARE )
|
||||
q |= P2M_ALLOC;
|
||||
|
||||
if ( locked )
|
||||
/* Grab the lock here, don't release until put_gfn */
|
||||
gfn_lock(p2m, gfn, 0);
|
||||
@@ -1417,18 +1419,18 @@ int set_identity_p2m_entry(struct domain *d, unsigned long gfn_l,
|
||||
mfn_t mfn;
|
||||
struct p2m_domain *p2m = p2m_get_hostp2m(d);
|
||||
int ret;
|
||||
#endif
|
||||
|
||||
if ( !paging_mode_translate(d) )
|
||||
{
|
||||
#endif
|
||||
if ( !is_iommu_enabled(d) )
|
||||
return 0;
|
||||
return iommu_legacy_map(d, _dfn(gfn_l), _mfn(gfn_l),
|
||||
1ul << PAGE_ORDER_4K,
|
||||
IOMMUF_readable | IOMMUF_writable);
|
||||
#ifdef CONFIG_HVM
|
||||
}
|
||||
|
||||
#ifdef CONFIG_HVM
|
||||
gfn_lock(p2m, gfn, 0);
|
||||
|
||||
mfn = p2m->get_entry(p2m, gfn, &p2mt, &a, 0, NULL, NULL);
|
||||
@@ -1464,16 +1466,16 @@ int clear_identity_p2m_entry(struct domain *d, unsigned long gfn_l)
|
||||
mfn_t mfn;
|
||||
struct p2m_domain *p2m = p2m_get_hostp2m(d);
|
||||
int ret;
|
||||
#endif
|
||||
|
||||
if ( !paging_mode_translate(d) )
|
||||
{
|
||||
#endif
|
||||
if ( !is_iommu_enabled(d) )
|
||||
return 0;
|
||||
return iommu_legacy_unmap(d, _dfn(gfn_l), 1ul << PAGE_ORDER_4K);
|
||||
#ifdef CONFIG_HVM
|
||||
}
|
||||
|
||||
#ifdef CONFIG_HVM
|
||||
gfn_lock(p2m, gfn, 0);
|
||||
|
||||
mfn = p2m->get_entry(p2m, gfn, &p2mt, &a, 0, NULL, NULL);
|
||||
|
||||