s390/ipl: add common ipl parameter attribute group
authorSven Schnelle <svens@linux.ibm.com>
Tue, 15 Aug 2023 08:27:08 +0000 (10:27 +0200)
committerHeiko Carstens <hca@linux.ibm.com>
Wed, 16 Aug 2023 13:13:03 +0000 (15:13 +0200)
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>
arch/s390/kernel/ipl.c

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