s390/sclp: Add hmfai field
authorAlexander Yarygin <yarygin@linux.vnet.ibm.com>
Fri, 1 Apr 2016 12:36:51 +0000 (15:36 +0300)
committerChristian Borntraeger <borntraeger@de.ibm.com>
Mon, 9 May 2016 11:33:59 +0000 (13:33 +0200)
Let's add hypervisor-managed facility-apportionment indications field to
SCLP structs. KVM will use it to reduce maintenance cost of
Non-Hypervisor-Managed facility bits.

Signed-off-by: Alexander Yarygin <yarygin@linux.vnet.ibm.com>
Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Reviewed-by: Eric Farman <farman@linux.vnet.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
arch/s390/include/asm/sclp.h
drivers/s390/char/sclp_early.c

index bab456be9a4f9f0803c8e9a73f82fe2fec55504c..994a66c09e8f16f1c256294da1d934791dca255e 100644 (file)
@@ -69,6 +69,7 @@ struct sclp_info {
        unsigned int max_cores;
        unsigned long hsa_size;
        unsigned long facilities;
+       unsigned int hmfai;
 };
 extern struct sclp_info sclp;
 
index 6804354c42bd29214463fc62d87fe13c3f92e775..0ac520dd1b219fef8e018555170fb99a9441c540 100644 (file)
@@ -49,7 +49,9 @@ struct read_info_sccb {
        u8      _pad_117[119 - 117];    /* 117-118 */
        u8      fac119;                 /* 119 */
        u16     hcpua;                  /* 120-121 */
-       u8      _pad_122[4096 - 122];   /* 122-4095 */
+       u8      _pad_122[124 - 122];    /* 122-123 */
+       u32     hmfai;                  /* 124-127 */
+       u8      _pad_128[4096 - 128];   /* 128-4095 */
 } __packed __aligned(PAGE_SIZE);
 
 static char sccb_early[PAGE_SIZE] __aligned(PAGE_SIZE) __initdata;
@@ -155,6 +157,8 @@ static void __init sclp_facilities_detect(struct read_info_sccb *sccb)
        sclp.mtid = (sccb->fac42 & 0x80) ? (sccb->fac42 & 31) : 0;
        sclp.mtid_cp = (sccb->fac42 & 0x80) ? (sccb->fac43 & 31) : 0;
        sclp.mtid_prev = (sccb->fac42 & 0x80) ? (sccb->fac66 & 31) : 0;
+
+       sclp.hmfai = sccb->hmfai;
 }
 
 /*