diff options
author | David Hildenbrand <dahi@linux.vnet.ibm.com> | 2014-10-14 06:11:02 -0400 |
---|---|---|
committer | Christian Borntraeger <borntraeger@de.ibm.com> | 2015-01-23 07:25:35 -0500 |
commit | d614be05c8b73033fa141c2f4559c117578b9171 (patch) | |
tree | 626955f3dc327e7f7454210741b16948a8b5af94 | |
parent | a3a9c59a683658d881aa2695be2aa875598f2712 (diff) |
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: David Hildenbrand <dahi@linux.vnet.ibm.com>
Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
-rw-r--r-- | arch/s390/include/asm/sclp.h | 4 | ||||
-rw-r--r-- | drivers/s390/char/sclp_early.c | 8 |
2 files changed, 11 insertions, 1 deletions
diff --git a/arch/s390/include/asm/sclp.h b/arch/s390/include/asm/sclp.h index 1aba89b53cb9..425e6cc240ff 100644 --- a/arch/s390/include/asm/sclp.h +++ b/arch/s390/include/asm/sclp.h | |||
@@ -31,7 +31,8 @@ struct sclp_cpu_entry { | |||
31 | u8 reserved0[2]; | 31 | u8 reserved0[2]; |
32 | u8 : 3; | 32 | u8 : 3; |
33 | u8 siif : 1; | 33 | u8 siif : 1; |
34 | u8 : 4; | 34 | u8 sigpif : 1; |
35 | u8 : 3; | ||
35 | u8 reserved2[10]; | 36 | u8 reserved2[10]; |
36 | u8 type; | 37 | u8 type; |
37 | u8 reserved1; | 38 | u8 reserved1; |
@@ -66,6 +67,7 @@ int memcpy_hsa(void *dest, unsigned long src, size_t count, int mode); | |||
66 | unsigned long sclp_get_hsa_size(void); | 67 | unsigned long sclp_get_hsa_size(void); |
67 | void sclp_early_detect(void); | 68 | void sclp_early_detect(void); |
68 | int sclp_has_siif(void); | 69 | int sclp_has_siif(void); |
70 | int sclp_has_sigpif(void); | ||
69 | unsigned int sclp_get_ibc(void); | 71 | unsigned int sclp_get_ibc(void); |
70 | 72 | ||
71 | #endif /* _ASM_S390_SCLP_H */ | 73 | #endif /* _ASM_S390_SCLP_H */ |
diff --git a/drivers/s390/char/sclp_early.c b/drivers/s390/char/sclp_early.c index 5bd6cb145a87..b8a5bf5f1f3d 100644 --- a/drivers/s390/char/sclp_early.c +++ b/drivers/s390/char/sclp_early.c | |||
@@ -49,6 +49,7 @@ static unsigned long sclp_hsa_size; | |||
49 | static unsigned int sclp_max_cpu; | 49 | static unsigned int sclp_max_cpu; |
50 | static struct sclp_ipl_info sclp_ipl_info; | 50 | static struct sclp_ipl_info sclp_ipl_info; |
51 | static unsigned char sclp_siif; | 51 | static unsigned char sclp_siif; |
52 | static unsigned char sclp_sigpif; | ||
52 | static u32 sclp_ibc; | 53 | static u32 sclp_ibc; |
53 | 54 | ||
54 | u64 sclp_facilities; | 55 | u64 sclp_facilities; |
@@ -131,6 +132,7 @@ static void __init sclp_facilities_detect(struct read_info_sccb *sccb) | |||
131 | if (boot_cpu_address != cpue->address) | 132 | if (boot_cpu_address != cpue->address) |
132 | continue; | 133 | continue; |
133 | sclp_siif = cpue->siif; | 134 | sclp_siif = cpue->siif; |
135 | sclp_sigpif = cpue->sigpif; | ||
134 | break; | 136 | break; |
135 | } | 137 | } |
136 | 138 | ||
@@ -172,6 +174,12 @@ int sclp_has_siif(void) | |||
172 | } | 174 | } |
173 | EXPORT_SYMBOL(sclp_has_siif); | 175 | EXPORT_SYMBOL(sclp_has_siif); |
174 | 176 | ||
177 | int sclp_has_sigpif(void) | ||
178 | { | ||
179 | return sclp_sigpif; | ||
180 | } | ||
181 | EXPORT_SYMBOL(sclp_has_sigpif); | ||
182 | |||
175 | unsigned int sclp_get_ibc(void) | 183 | unsigned int sclp_get_ibc(void) |
176 | { | 184 | { |
177 | return sclp_ibc; | 185 | return sclp_ibc; |