aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Mueller <mimu@linux.vnet.ibm.com>2017-06-12 07:49:28 -0400
committerChristian Borntraeger <borntraeger@de.ibm.com>2018-01-26 08:13:57 -0500
commit9e73ea7056bd5f7e1b6e66e3d503478bb5160f07 (patch)
treed3f76d96a5fc0d89930d2653e994d121962a7f7f
parentf180bfdae024b34e71e89dcc82b037dd97f74c3a (diff)
s390/sclp: expose the GISA format facility
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>
-rw-r--r--arch/s390/include/asm/sclp.h1
-rw-r--r--drivers/s390/char/sclp_early.c3
2 files changed, 3 insertions, 1 deletions
diff --git a/arch/s390/include/asm/sclp.h b/arch/s390/include/asm/sclp.h
index d3c1a8a2e3ad..3cae9168f63c 100644
--- a/arch/s390/include/asm/sclp.h
+++ b/arch/s390/include/asm/sclp.h
@@ -77,6 +77,7 @@ struct sclp_info {
77 unsigned char has_ibs : 1; 77 unsigned char has_ibs : 1;
78 unsigned char has_skey : 1; 78 unsigned char has_skey : 1;
79 unsigned char has_kss : 1; 79 unsigned char has_kss : 1;
80 unsigned char has_gisaf : 1;
80 unsigned int ibc; 81 unsigned int ibc;
81 unsigned int mtid; 82 unsigned int mtid;
82 unsigned int mtid_cp; 83 unsigned int mtid_cp;
diff --git a/drivers/s390/char/sclp_early.c b/drivers/s390/char/sclp_early.c
index d06bc5674e5f..6b1891539c84 100644
--- a/drivers/s390/char/sclp_early.c
+++ b/drivers/s390/char/sclp_early.c
@@ -49,7 +49,7 @@ struct read_info_sccb {
49 u8 _pad_112[116 - 112]; /* 112-115 */ 49 u8 _pad_112[116 - 112]; /* 112-115 */
50 u8 fac116; /* 116 */ 50 u8 fac116; /* 116 */
51 u8 fac117; /* 117 */ 51 u8 fac117; /* 117 */
52 u8 _pad_118; /* 118 */ 52 u8 fac118; /* 118 */
53 u8 fac119; /* 119 */ 53 u8 fac119; /* 119 */
54 u16 hcpua; /* 120-121 */ 54 u16 hcpua; /* 120-121 */
55 u8 _pad_122[124 - 122]; /* 122-123 */ 55 u8 _pad_122[124 - 122]; /* 122-123 */
@@ -100,6 +100,7 @@ static void __init sclp_early_facilities_detect(struct read_info_sccb *sccb)
100 sclp.has_esca = !!(sccb->fac116 & 0x08); 100 sclp.has_esca = !!(sccb->fac116 & 0x08);
101 sclp.has_pfmfi = !!(sccb->fac117 & 0x40); 101 sclp.has_pfmfi = !!(sccb->fac117 & 0x40);
102 sclp.has_ibs = !!(sccb->fac117 & 0x20); 102 sclp.has_ibs = !!(sccb->fac117 & 0x20);
103 sclp.has_gisaf = !!(sccb->fac118 & 0x08);
103 sclp.has_hvs = !!(sccb->fac119 & 0x80); 104 sclp.has_hvs = !!(sccb->fac119 & 0x80);
104 sclp.has_kss = !!(sccb->fac98 & 0x01); 105 sclp.has_kss = !!(sccb->fac98 & 0x01);
105 if (sccb->fac85 & 0x02) 106 if (sccb->fac85 & 0x02)