On 2/22/22 15:54, Steffen Eiden wrote:
The UV facility bits shared/unshared must both be set or none.
Signed-off-by: Steffen Eiden <seiden@xxxxxxxxxxxxx>
Reviewed-by: Janosch Frank <frankja@xxxxxxxxxxxxx>
---
s390x/uv-guest.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/s390x/uv-guest.c b/s390x/uv-guest.c
index 728c60aa..77057bd2 100644
--- a/s390x/uv-guest.c
+++ b/s390x/uv-guest.c
@@ -159,6 +159,14 @@ static void test_invalid(void)
report_prefix_pop();
}
+static void test_share_bits(void)
+{
+ bool unshare = uv_query_test_call(BIT_UVC_CMD_REMOVE_SHARED_ACCESS);
+ bool share = uv_query_test_call(BIT_UVC_CMD_SET_SHARED_ACCESS);
+
+ report(!(share ^ unshare), "share bits");
+}
+
int main(void)
{
bool has_uvc = test_facility(158);
@@ -169,6 +177,12 @@ int main(void)
goto done;
}
+ /*
+ * Needs to be done before the guest-fence,
+ * as the fence tests if both shared bits are present
+ */
+ test_share_bits();
+
if (!uv_os_is_guest()) {
report_skip("Not a protected guest");
goto done;