Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 154fa27e authored by Alexander Yarygin's avatar Alexander Yarygin Committed by Christian Borntraeger
Browse files

s390/sclp: Add hmfai field



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: default avatarAlexander Yarygin <yarygin@linux.vnet.ibm.com>
Reviewed-by: default avatarDavid Hildenbrand <dahi@linux.vnet.ibm.com>
Reviewed-by: default avatarEric Farman <farman@linux.vnet.ibm.com>
Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
parent ed8dda0b
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -69,6 +69,7 @@ struct sclp_info {
	unsigned int max_cores;
	unsigned int max_cores;
	unsigned long hsa_size;
	unsigned long hsa_size;
	unsigned long facilities;
	unsigned long facilities;
	unsigned int hmfai;
};
};
extern struct sclp_info sclp;
extern struct sclp_info sclp;


+5 −1
Original line number Original line Diff line number Diff line
@@ -49,7 +49,9 @@ struct read_info_sccb {
	u8	_pad_117[119 - 117];	/* 117-118 */
	u8	_pad_117[119 - 117];	/* 117-118 */
	u8	fac119;			/* 119 */
	u8	fac119;			/* 119 */
	u16	hcpua;			/* 120-121 */
	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);
} __packed __aligned(PAGE_SIZE);


static char sccb_early[PAGE_SIZE] __aligned(PAGE_SIZE) __initdata;
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 = (sccb->fac42 & 0x80) ? (sccb->fac42 & 31) : 0;
	sclp.mtid_cp = (sccb->fac42 & 0x80) ? (sccb->fac43 & 31) : 0;
	sclp.mtid_cp = (sccb->fac42 & 0x80) ? (sccb->fac43 & 31) : 0;
	sclp.mtid_prev = (sccb->fac42 & 0x80) ? (sccb->fac66 & 31) : 0;
	sclp.mtid_prev = (sccb->fac42 & 0x80) ? (sccb->fac66 & 31) : 0;

	sclp.hmfai = sccb->hmfai;
}
}


/*
/*