s390/sclp: expose the GISA format facility
authorMichael Mueller <mimu@linux.vnet.ibm.com>
Mon, 12 Jun 2017 11:49:28 +0000 (13:49 +0200)
committerChristian Borntraeger <borntraeger@de.ibm.com>
Fri, 26 Jan 2018 13:13:57 +0000 (14:13 +0100)
The GISA format facility is required by the host to be able to process
a format-1 GISA. If not available, the used GISA format will be format-0.
All format-1 related extension will not be available in this case.

Signed-off-by: Michael Mueller <mimu@linux.vnet.ibm.com>
Reviewed-by: Pierre Morel <pmorel@linux.vnet.ibm.com>
Reviewed-by: Halil Pasic <pasic@linux.vnet.ibm.com>
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Acked-by: David Hildenbrand <david@redhat.com>
Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
arch/s390/include/asm/sclp.h
drivers/s390/char/sclp_early.c

index d3c1a8a..3cae916 100644 (file)
@@ -77,6 +77,7 @@ struct sclp_info {
        unsigned char has_ibs : 1;
        unsigned char has_skey : 1;
        unsigned char has_kss : 1;
+       unsigned char has_gisaf : 1;
        unsigned int ibc;
        unsigned int mtid;
        unsigned int mtid_cp;
index d06bc56..6b18915 100644 (file)
@@ -49,7 +49,7 @@ struct read_info_sccb {
        u8      _pad_112[116 - 112];    /* 112-115 */
        u8      fac116;                 /* 116 */
        u8      fac117;                 /* 117 */
-       u8      _pad_118;               /* 118 */
+       u8      fac118;                 /* 118 */
        u8      fac119;                 /* 119 */
        u16     hcpua;                  /* 120-121 */
        u8      _pad_122[124 - 122];    /* 122-123 */
@@ -100,6 +100,7 @@ static void __init sclp_early_facilities_detect(struct read_info_sccb *sccb)
        sclp.has_esca = !!(sccb->fac116 & 0x08);
        sclp.has_pfmfi = !!(sccb->fac117 & 0x40);
        sclp.has_ibs = !!(sccb->fac117 & 0x20);
+       sclp.has_gisaf = !!(sccb->fac118 & 0x08);
        sclp.has_hvs = !!(sccb->fac119 & 0x80);
        sclp.has_kss = !!(sccb->fac98 & 0x01);
        if (sccb->fac85 & 0x02)