Explorar o código

s390/sclp: detect intervention bypass facility

Let's detect if we have the intervention bypass facility installed.

Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
David Hildenbrand %!s(int64=9) %!d(string=hai) anos
pai
achega
72cd82b9e9
Modificáronse 2 ficheiros con 7 adicións e 1 borrados
  1. 6 1
      arch/s390/include/asm/sclp.h
  2. 1 0
      drivers/s390/char/sclp_early.c

+ 6 - 1
arch/s390/include/asm/sclp.h

@@ -38,7 +38,11 @@ struct sclp_core_entry {
 	u8 siif : 1;
 	u8 siif : 1;
 	u8 sigpif : 1;
 	u8 sigpif : 1;
 	u8 : 3;
 	u8 : 3;
-	u8 reserved2[10];
+	u8 reserved2[3];
+	u8 : 2;
+	u8 ib : 1;
+	u8 : 5;
+	u8 reserved3[6];
 	u8 type;
 	u8 type;
 	u8 reserved1;
 	u8 reserved1;
 } __attribute__((packed));
 } __attribute__((packed));
@@ -64,6 +68,7 @@ struct sclp_info {
 	unsigned char has_gpere : 1;
 	unsigned char has_gpere : 1;
 	unsigned char has_cmma : 1;
 	unsigned char has_cmma : 1;
 	unsigned char has_gsls : 1;
 	unsigned char has_gsls : 1;
+	unsigned char has_ib : 1;
 	unsigned int ibc;
 	unsigned int ibc;
 	unsigned int mtid;
 	unsigned int mtid;
 	unsigned int mtid_cp;
 	unsigned int mtid_cp;

+ 1 - 0
drivers/s390/char/sclp_early.c

@@ -149,6 +149,7 @@ static void __init sclp_facilities_detect(struct read_info_sccb *sccb)
 		sclp.has_sigpif = cpue->sigpif;
 		sclp.has_sigpif = cpue->sigpif;
 		sclp.has_sief2 = cpue->sief2;
 		sclp.has_sief2 = cpue->sief2;
 		sclp.has_gpere = cpue->gpere;
 		sclp.has_gpere = cpue->gpere;
+		sclp.has_ib = cpue->ib;
 		break;
 		break;
 	}
 	}