x86: p2m-pod: address violation of MISRA C Rule 2.1

Rule 2.1 states: "A project shall not contain unreachable code".

The placement of the loop after "out_unmap" can be moved earlier
in order to avoid the unconditional return to be marked as a cause of
unreachability for the loop, as this is a consequence of
"__builtin_unreachable" being configured in ECLAIR as being deliberately
unreachable, and therefore not reported as causing the code after the
"out_unmap" label to be unreachable.

Replacing one instance of "goto out_unmap" with the loop avoids
considering the unconditional return at the end of the function as a cause
of unreachability, while preserving the semantics of the function.

No functional change intended.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
Nicola Vetrini authored and Jan Beulich committed 2024-12-10 18:04:20 +01:00
1 parent d636e0ed91
commit bec5b2447c
1 file changed
+8 -12
+8 -12
View File
@@ -1005,7 +1005,14 @@ p2m_pod_zero_check(struct p2m_domain *p2m, const gfn_t *gfns, unsigned int count
{
ASSERT_UNREACHABLE();
domain_crash(d);
goto out_unmap;
out_unmap:
/*
* Something went wrong, probably crashing the domain. Unmap
* everything and return.
*/
for ( i = 0; i < count; i++ )
if ( map[i] )
unmap_domain_page(map[i]);
}
}
else
@@ -1032,17 +1039,6 @@ p2m_pod_zero_check(struct p2m_domain *p2m, const gfn_t *gfns, unsigned int count
ioreq_request_mapcache_invalidate(d);
}
}
return;
out_unmap:
/*
* Something went wrong, probably crashing the domain. Unmap
* everything and return.
*/
for ( i = 0; i < count; i++ )
if ( map[i] )
unmap_domain_page(map[i]);
}
static void
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.