Commit d614be05 authored by David Hildenbrand's avatar David Hildenbrand Committed by Christian Borntraeger

s390/sclp: introduce check for the SIGP Interpretation Facility

This patch introduces the infrastructure to check whether the SIGP
Interpretation Facility is installed on all VCPUs in the configuration.
Signed-off-by: default avatarDavid Hildenbrand <dahi@linux.vnet.ibm.com>
Acked-by: default avatarCornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
parent a3a9c59a
...@@ -31,7 +31,8 @@ struct sclp_cpu_entry { ...@@ -31,7 +31,8 @@ struct sclp_cpu_entry {
u8 reserved0[2]; u8 reserved0[2];
u8 : 3; u8 : 3;
u8 siif : 1; u8 siif : 1;
u8 : 4; u8 sigpif : 1;
u8 : 3;
u8 reserved2[10]; u8 reserved2[10];
u8 type; u8 type;
u8 reserved1; u8 reserved1;
...@@ -66,6 +67,7 @@ int memcpy_hsa(void *dest, unsigned long src, size_t count, int mode); ...@@ -66,6 +67,7 @@ int memcpy_hsa(void *dest, unsigned long src, size_t count, int mode);
unsigned long sclp_get_hsa_size(void); unsigned long sclp_get_hsa_size(void);
void sclp_early_detect(void); void sclp_early_detect(void);
int sclp_has_siif(void); int sclp_has_siif(void);
int sclp_has_sigpif(void);
unsigned int sclp_get_ibc(void); unsigned int sclp_get_ibc(void);
#endif /* _ASM_S390_SCLP_H */ #endif /* _ASM_S390_SCLP_H */
...@@ -49,6 +49,7 @@ static unsigned long sclp_hsa_size; ...@@ -49,6 +49,7 @@ static unsigned long sclp_hsa_size;
static unsigned int sclp_max_cpu; static unsigned int sclp_max_cpu;
static struct sclp_ipl_info sclp_ipl_info; static struct sclp_ipl_info sclp_ipl_info;
static unsigned char sclp_siif; static unsigned char sclp_siif;
static unsigned char sclp_sigpif;
static u32 sclp_ibc; static u32 sclp_ibc;
u64 sclp_facilities; u64 sclp_facilities;
...@@ -131,6 +132,7 @@ static void __init sclp_facilities_detect(struct read_info_sccb *sccb) ...@@ -131,6 +132,7 @@ static void __init sclp_facilities_detect(struct read_info_sccb *sccb)
if (boot_cpu_address != cpue->address) if (boot_cpu_address != cpue->address)
continue; continue;
sclp_siif = cpue->siif; sclp_siif = cpue->siif;
sclp_sigpif = cpue->sigpif;
break; break;
} }
...@@ -172,6 +174,12 @@ int sclp_has_siif(void) ...@@ -172,6 +174,12 @@ int sclp_has_siif(void)
} }
EXPORT_SYMBOL(sclp_has_siif); EXPORT_SYMBOL(sclp_has_siif);
int sclp_has_sigpif(void)
{
return sclp_sigpif;
}
EXPORT_SYMBOL(sclp_has_sigpif);
unsigned int sclp_get_ibc(void) unsigned int sclp_get_ibc(void)
{ {
return sclp_ibc; return sclp_ibc;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment