cpufreq: use default_groups in kobj_type
PATCH 1/1 cpufreq: use default_groups in kobj_type
There are currently 2 ways to create a set of sysfs files for a kobj_type, through the default_attrs field, and the default_groups field. Move the cpufreq code to use default_groups field which has been the preferred way since aa30f47cf666 ("kobject: Add support for default attribute groups to kobj_type") so that we can soon get rid of the obsolete default_attrs field.
--- drivers/cpufreq/cpufreq.c | 5 +++-- drivers/cpufreq/cpufreq_conservative.c | 5 +++-- drivers/cpufreq/cpufreq_ondemand.c | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-)
drivers/cpufreq/cpufreq.c +3 -2
@@ -924,7 +924,7 @@ cpufreq_freq_attr_rw(scaling_max_freq);cpufreq_freq_attr_rw (scaling_governor);cpufreq_freq_attr_rw (scaling_setspeed); -static struct attribute *default_attrs[] = { +static struct attribute *cpufreq_attrs[] = { &cpuinfo_min_freq.attr, &cpuinfo_max_freq.attr, &cpuinfo_transition_latency.attr,
@@ -938,6 +938,7 @@ static struct attribute *default_attrs[] = { &scaling_setspeed.attr, NULL }; +ATTRIBUTE_GROUPS (cpufreq);#define to_policy (k) container_of(k, struct cpufreq_policy, kobj)#define to_attr (a) container_of(a, struct freq_attr, attr)
@@ -1000,7 +1001,7 @@ static const struct sysfs_ops sysfs_ops = {static struct kobj_type ktype_cpufreq = { .sysfs_ops = &sysfs_ops, - .default_attrs = default_attrs, + .default_groups = cpufreq_groups, .release = cpufreq_sysfs_release, };
drivers/cpufreq/cpufreq_conservative.c +3 -2
@@ -257,7 +257,7 @@ gov_attr_rw(ignore_nice_load);gov_attr_rw (down_threshold);gov_attr_rw (freq_step); -static struct attribute *cs_attributes[] = { +static struct attribute *cs_attrs[] = { &sampling_rate.attr, &sampling_down_factor.attr, &up_threshold.attr,
@@ -266,6 +266,7 @@ static struct attribute *cs_attributes[] = { &freq_step.attr, NULL }; +ATTRIBUTE_GROUPS (cs);/************************** sysfs end ************************/
@@ -315,7 +316,7 @@ static void cs_start(struct cpufreq_policy *policy)static struct dbs_governor cs_governor = { .gov =CPUFREQ_DBS_GOVERNOR_INITIALIZER ("conservative" ), - .kobj_type = { .default_attrs = cs_attributes }, + .kobj_type = { .default_groups = cs_groups }, .gov_dbs_update = cs_dbs_update, .alloc = cs_alloc, .free = cs_free,
drivers/cpufreq/cpufreq_ondemand.c +3 -2
@@ -328,7 +328,7 @@ gov_attr_rw(sampling_down_factor);gov_attr_rw (ignore_nice_load);gov_attr_rw (powersave_bias); -static struct attribute *od_attributes[] = { +static struct attribute *od_attrs[] = { &sampling_rate.attr, &up_threshold.attr, &sampling_down_factor.attr,
@@ -337,6 +337,7 @@ static struct attribute *od_attributes[] = { &io_is_busy.attr, NULL }; +ATTRIBUTE_GROUPS (od);/************************** sysfs end ************************/
@@ -401,7 +402,7 @@ static struct od_ops od_ops = {static struct dbs_governor od_dbs_gov = { .gov =CPUFREQ_DBS_GOVERNOR_INITIALIZER ("ondemand" ), - .kobj_type = { .default_attrs = od_attributes }, + .kobj_type = { .default_groups = od_groups }, .gov_dbs_update = od_dbs_update, .alloc = od_alloc, .free = od_free,
Signature · 1 line
2.34.1
Quoted 8 lines · Greg Kroah-Hartman
There are currently 2 ways to create a set of sysfs files for a
kobj_type, through thedefault_attrsfield, and thedefault_groupsfield. Move the cpufreq code to usedefault_groupsfield which has been the preferred way sinceaa30f47cf666("kobject: Add support for default attribute groups tokobj_type") so that we can soon get rid of the obsoletedefault_attrsfield.
Quoted 4 lines
Cc "Rafael J. Wysocki" <[email protected]>Cc Viresh Kumar <[email protected]>Signed-off-by Greg Kroah-Hartman <[email protected]>
Applied as 5.17 material, thanks!
Quoted 99 lines
--- drivers/cpufreq/cpufreq.c | 5 +++-- drivers/cpufreq/cpufreq_conservative.c | 5 +++-- drivers/cpufreq/cpufreq_ondemand.c | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-)drivers/cpufreq/cpufreq.c +3
-2@@ -924,7 +924,7 @@ cpufreq_freq_attr_rw(scaling_max_freq);cpufreq_freq_attr_rw (scaling_governor);cpufreq_freq_attr_rw (scaling_setspeed); -static struct attribute *default_attrs[] = { +static struct attribute *cpufreq_attrs[] = { &cpuinfo_min_freq.attr, &cpuinfo_max_freq.attr, &cpuinfo_transition_latency.attr,@@ -938,6 +938,7 @@ static struct attribute *default_attrs[] = { &scaling_setspeed.attr, NULL }; +ATTRIBUTE_GROUPS (cpufreq);#define to_policy (k) container_of(k, struct cpufreq_policy, kobj)#define to_attr (a) container_of(a, struct freq_attr, attr)@@ -1000,7 +1001,7 @@ static const struct sysfs_ops sysfs_ops = {static struct kobj_type ktype_cpufreq = { .sysfs_ops = &sysfs_ops, - .default_attrs = default_attrs, + .default_groups = cpufreq_groups, .release = cpufreq_sysfs_release, };drivers/cpufreq/cpufreq_conservative.c +3
-2@@ -257,7 +257,7 @@ gov_attr_rw(ignore_nice_load);gov_attr_rw (down_threshold);gov_attr_rw (freq_step); -static struct attribute *cs_attributes[] = { +static struct attribute *cs_attrs[] = { &sampling_rate.attr, &sampling_down_factor.attr, &up_threshold.attr,@@ -266,6 +266,7 @@ static struct attribute *cs_attributes[] = { &freq_step.attr, NULL }; +ATTRIBUTE_GROUPS (cs);/************************** sysfs end ************************/ @@ -315,7 +316,7 @@ static void cs_start(struct cpufreq_policy *policy)static struct dbs_governor cs_governor = { .gov =CPUFREQ_DBS_GOVERNOR_INITIALIZER ("conservative" ), - .kobj_type = { .default_attrs = cs_attributes }, + .kobj_type = { .default_groups = cs_groups }, .gov_dbs_update = cs_dbs_update, .alloc = cs_alloc, .free = cs_free,drivers/cpufreq/cpufreq_ondemand.c +3
-3@@ -328,7 +328,7 @@ gov_attr_rw(sampling_down_factor);gov_attr_rw (ignore_nice_load);gov_attr_rw (powersave_bias); -static struct attribute *od_attributes[] = { +static struct attribute *od_attrs[] = { &sampling_rate.attr, &up_threshold.attr, &sampling_down_factor.attr,@@ -337,6 +337,7 @@ static struct attribute *od_attributes[] = { &io_is_busy.attr, NULL }; +ATTRIBUTE_GROUPS (od);/************************** sysfs end ************************/ @@ -401,7 +402,7 @@ static struct od_ops od_ops = {static struct dbs_governor od_dbs_gov = { .gov =CPUFREQ_DBS_GOVERNOR_INITIALIZER ("ondemand" ), - .kobj_type = { .default_attrs = od_attributes }, + .kobj_type = { .default_groups = od_groups }, .gov_dbs_update = od_dbs_update, .alloc = od_alloc, .free = od_free, --2.34.1