s390/ipl: add common ipl parameter attribute group

All ipl types have 'secure','has_secure' and type parameters. Move
these to a common ipl parameter group so that they don't need to be
present in each ipl parameter group.

Signed-off-by: Sven Schnelle <svens@linux.ibm.com>
Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
This commit is contained in:
Sven Schnelle 2023-08-15 10:27:08 +02:00 committed by Heiko Carstens
parent ea5717cb13
commit 7645dcddc2

View file

@ -557,15 +557,12 @@ static struct kobj_attribute sys_ipl_ccw_loadparm_attr =
__ATTR(loadparm, 0444, ipl_ccw_loadparm_show, NULL); __ATTR(loadparm, 0444, ipl_ccw_loadparm_show, NULL);
static struct attribute *ipl_fcp_attrs[] = { static struct attribute *ipl_fcp_attrs[] = {
&sys_ipl_type_attr.attr,
&sys_ipl_device_attr.attr, &sys_ipl_device_attr.attr,
&sys_ipl_fcp_wwpn_attr.attr, &sys_ipl_fcp_wwpn_attr.attr,
&sys_ipl_fcp_lun_attr.attr, &sys_ipl_fcp_lun_attr.attr,
&sys_ipl_fcp_bootprog_attr.attr, &sys_ipl_fcp_bootprog_attr.attr,
&sys_ipl_fcp_br_lba_attr.attr, &sys_ipl_fcp_br_lba_attr.attr,
&sys_ipl_ccw_loadparm_attr.attr, &sys_ipl_ccw_loadparm_attr.attr,
&sys_ipl_secure_attr.attr,
&sys_ipl_has_secure_attr.attr,
NULL, NULL,
}; };
@ -575,14 +572,11 @@ static struct attribute_group ipl_fcp_attr_group = {
}; };
static struct attribute *ipl_nvme_attrs[] = { static struct attribute *ipl_nvme_attrs[] = {
&sys_ipl_type_attr.attr,
&sys_ipl_nvme_fid_attr.attr, &sys_ipl_nvme_fid_attr.attr,
&sys_ipl_nvme_nsid_attr.attr, &sys_ipl_nvme_nsid_attr.attr,
&sys_ipl_nvme_bootprog_attr.attr, &sys_ipl_nvme_bootprog_attr.attr,
&sys_ipl_nvme_br_lba_attr.attr, &sys_ipl_nvme_br_lba_attr.attr,
&sys_ipl_ccw_loadparm_attr.attr, &sys_ipl_ccw_loadparm_attr.attr,
&sys_ipl_secure_attr.attr,
&sys_ipl_has_secure_attr.attr,
NULL, NULL,
}; };
@ -592,13 +586,10 @@ static struct attribute_group ipl_nvme_attr_group = {
}; };
static struct attribute *ipl_eckd_attrs[] = { static struct attribute *ipl_eckd_attrs[] = {
&sys_ipl_type_attr.attr,
&sys_ipl_eckd_bootprog_attr.attr, &sys_ipl_eckd_bootprog_attr.attr,
&sys_ipl_eckd_br_chr_attr.attr, &sys_ipl_eckd_br_chr_attr.attr,
&sys_ipl_ccw_loadparm_attr.attr, &sys_ipl_ccw_loadparm_attr.attr,
&sys_ipl_device_attr.attr, &sys_ipl_device_attr.attr,
&sys_ipl_secure_attr.attr,
&sys_ipl_has_secure_attr.attr,
NULL, NULL,
}; };
@ -610,21 +601,15 @@ static struct attribute_group ipl_eckd_attr_group = {
/* CCW ipl device attributes */ /* CCW ipl device attributes */
static struct attribute *ipl_ccw_attrs_vm[] = { static struct attribute *ipl_ccw_attrs_vm[] = {
&sys_ipl_type_attr.attr,
&sys_ipl_device_attr.attr, &sys_ipl_device_attr.attr,
&sys_ipl_ccw_loadparm_attr.attr, &sys_ipl_ccw_loadparm_attr.attr,
&sys_ipl_vm_parm_attr.attr, &sys_ipl_vm_parm_attr.attr,
&sys_ipl_secure_attr.attr,
&sys_ipl_has_secure_attr.attr,
NULL, NULL,
}; };
static struct attribute *ipl_ccw_attrs_lpar[] = { static struct attribute *ipl_ccw_attrs_lpar[] = {
&sys_ipl_type_attr.attr,
&sys_ipl_device_attr.attr, &sys_ipl_device_attr.attr,
&sys_ipl_ccw_loadparm_attr.attr, &sys_ipl_ccw_loadparm_attr.attr,
&sys_ipl_secure_attr.attr,
&sys_ipl_has_secure_attr.attr,
NULL, NULL,
}; };
@ -636,17 +621,15 @@ static struct attribute_group ipl_ccw_attr_group_lpar = {
.attrs = ipl_ccw_attrs_lpar .attrs = ipl_ccw_attrs_lpar
}; };
/* UNKNOWN ipl device attributes */ static struct attribute *ipl_common_attrs[] = {
static struct attribute *ipl_unknown_attrs[] = {
&sys_ipl_type_attr.attr, &sys_ipl_type_attr.attr,
&sys_ipl_secure_attr.attr, &sys_ipl_secure_attr.attr,
&sys_ipl_has_secure_attr.attr, &sys_ipl_has_secure_attr.attr,
NULL, NULL,
}; };
static struct attribute_group ipl_unknown_attr_group = { static struct attribute_group ipl_common_attr_group = {
.attrs = ipl_unknown_attrs, .attrs = ipl_common_attrs,
}; };
static struct kset *ipl_kset; static struct kset *ipl_kset;
@ -670,6 +653,9 @@ static int __init ipl_init(void)
rc = -ENOMEM; rc = -ENOMEM;
goto out; goto out;
} }
rc = sysfs_create_group(&ipl_kset->kobj, &ipl_common_attr_group);
if (rc)
goto out;
switch (ipl_info.type) { switch (ipl_info.type) {
case IPL_TYPE_CCW: case IPL_TYPE_CCW:
if (MACHINE_IS_VM) if (MACHINE_IS_VM)
@ -691,8 +677,6 @@ static int __init ipl_init(void)
rc = sysfs_create_group(&ipl_kset->kobj, &ipl_nvme_attr_group); rc = sysfs_create_group(&ipl_kset->kobj, &ipl_nvme_attr_group);
break; break;
default: default:
rc = sysfs_create_group(&ipl_kset->kobj,
&ipl_unknown_attr_group);
break; break;
} }
out: out: