s390/sthyi: Fix machine name validity indication
authorJanosch Frank <frankja@linux.ibm.com>
Tue, 2 Oct 2018 08:57:52 +0000 (10:57 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Mon, 15 Oct 2018 10:17:00 +0000 (12:17 +0200)
When running as a level 3 guest with no host provided sthyi support
sclp_ocf_cpc_name_copy() will only return zeroes. Zeroes are not a
valid group name, so let's not indicate that the group name field is
valid.

Also the group name is not dependent on stsi, let's not return based
on stsi before setting it.

Fixes: 95ca2cb57985 ("KVM: s390: Add sthyi emulation")
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/kernel/sthyi.c

index 0859cde36f7520616e62df133c2f88df69a47e27..888cc2f166db726d8e5c967c4082e781cc6137f4 100644 (file)
@@ -183,17 +183,19 @@ static void fill_hdr(struct sthyi_sctns *sctns)
 static void fill_stsi_mac(struct sthyi_sctns *sctns,
                          struct sysinfo_1_1_1 *sysinfo)
 {
+       sclp_ocf_cpc_name_copy(sctns->mac.infmname);
+       if (*(u64 *)sctns->mac.infmname != 0)
+               sctns->mac.infmval1 |= MAC_NAME_VLD;
+
        if (stsi(sysinfo, 1, 1, 1))
                return;
 
-       sclp_ocf_cpc_name_copy(sctns->mac.infmname);
-
        memcpy(sctns->mac.infmtype, sysinfo->type, sizeof(sctns->mac.infmtype));
        memcpy(sctns->mac.infmmanu, sysinfo->manufacturer, sizeof(sctns->mac.infmmanu));
        memcpy(sctns->mac.infmpman, sysinfo->plant, sizeof(sctns->mac.infmpman));
        memcpy(sctns->mac.infmseq, sysinfo->sequence, sizeof(sctns->mac.infmseq));
 
-       sctns->mac.infmval1 |= MAC_ID_VLD | MAC_NAME_VLD;
+       sctns->mac.infmval1 |= MAC_ID_VLD;
 }
 
 static void fill_stsi_par(struct sthyi_sctns *sctns,