aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/ipl.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390/kernel/ipl.c')
-rw-r--r--arch/s390/kernel/ipl.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c
index f9718bc67cd4..0567de4005b4 100644
--- a/arch/s390/kernel/ipl.c
+++ b/arch/s390/kernel/ipl.c
@@ -122,6 +122,13 @@ static char *dump_type_str(enum dump_type type)
122 122
123int __bootdata_preserved(ipl_block_valid); 123int __bootdata_preserved(ipl_block_valid);
124struct ipl_parameter_block __bootdata_preserved(ipl_block); 124struct ipl_parameter_block __bootdata_preserved(ipl_block);
125int __bootdata_preserved(ipl_secure_flag);
126
127unsigned long __bootdata_preserved(ipl_cert_list_addr);
128unsigned long __bootdata_preserved(ipl_cert_list_size);
129
130unsigned long __bootdata(early_ipl_comp_list_addr);
131unsigned long __bootdata(early_ipl_comp_list_size);
125 132
126static int reipl_capabilities = IPL_TYPE_UNKNOWN; 133static int reipl_capabilities = IPL_TYPE_UNKNOWN;
127 134
@@ -267,6 +274,15 @@ static ssize_t ipl_type_show(struct kobject *kobj, struct kobj_attribute *attr,
267 274
268static struct kobj_attribute sys_ipl_type_attr = __ATTR_RO(ipl_type); 275static struct kobj_attribute sys_ipl_type_attr = __ATTR_RO(ipl_type);
269 276
277static ssize_t ipl_secure_show(struct kobject *kobj,
278 struct kobj_attribute *attr, char *page)
279{
280 return sprintf(page, "%i\n", !!ipl_secure_flag);
281}
282
283static struct kobj_attribute sys_ipl_secure_attr =
284 __ATTR(secure, 0444, ipl_secure_show, NULL);
285
270static ssize_t ipl_vm_parm_show(struct kobject *kobj, 286static ssize_t ipl_vm_parm_show(struct kobject *kobj,
271 struct kobj_attribute *attr, char *page) 287 struct kobj_attribute *attr, char *page)
272{ 288{
@@ -362,6 +378,7 @@ static struct attribute *ipl_fcp_attrs[] = {
362 &sys_ipl_fcp_bootprog_attr.attr, 378 &sys_ipl_fcp_bootprog_attr.attr,
363 &sys_ipl_fcp_br_lba_attr.attr, 379 &sys_ipl_fcp_br_lba_attr.attr,
364 &sys_ipl_ccw_loadparm_attr.attr, 380 &sys_ipl_ccw_loadparm_attr.attr,
381 &sys_ipl_secure_attr.attr,
365 NULL, 382 NULL,
366}; 383};
367 384
@@ -377,6 +394,7 @@ static struct attribute *ipl_ccw_attrs_vm[] = {
377 &sys_ipl_device_attr.attr, 394 &sys_ipl_device_attr.attr,
378 &sys_ipl_ccw_loadparm_attr.attr, 395 &sys_ipl_ccw_loadparm_attr.attr,
379 &sys_ipl_vm_parm_attr.attr, 396 &sys_ipl_vm_parm_attr.attr,
397 &sys_ipl_secure_attr.attr,
380 NULL, 398 NULL,
381}; 399};
382 400
@@ -384,6 +402,7 @@ static struct attribute *ipl_ccw_attrs_lpar[] = {
384 &sys_ipl_type_attr.attr, 402 &sys_ipl_type_attr.attr,
385 &sys_ipl_device_attr.attr, 403 &sys_ipl_device_attr.attr,
386 &sys_ipl_ccw_loadparm_attr.attr, 404 &sys_ipl_ccw_loadparm_attr.attr,
405 &sys_ipl_secure_attr.attr,
387 NULL, 406 NULL,
388}; 407};
389 408