On 27.04.22 18:13, Ralf Ramsauer wrote:
> 
> 
> On 27/04/2022 08:26, Jan Kiszka wrote:
>> On 26.04.22 19:22, Ralf Ramsauer wrote:
>>> Since Linux commit cdb4f26a63c3 ("kobject: kobj_type: remove
>>> default_attrs"), the deprecated kobj member default_attrs is gone. It is
>>> replaced by default_groups.
>>>
>>> default_groups is available since 2013, so simply switch to
>>> default_groups, without (hopefully) breaking any older kernel.
>>>
>>> Signed-off-by: Ralf Ramsauer <[email protected]>
>>> ---
>>>   driver/sysfs.c | 9 ++++++---
>>>   1 file changed, 6 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/driver/sysfs.c b/driver/sysfs.c
>>> index a604afa4..f91d5ac5 100644
>>> --- a/driver/sysfs.c
>>> +++ b/driver/sysfs.c
>>> @@ -180,10 +180,11 @@ static struct attribute *cell_stats_attrs[] = {
>>>   #endif
>>>       NULL
>>>   };
>>> +ATTRIBUTE_GROUPS(cell_stats);
>>>     static struct kobj_type cell_stats_type = {
>>>       .sysfs_ops = &kobj_sysfs_ops,
>>> -    .default_attrs = cell_stats_attrs,
>>> +    .default_groups = cell_stats_groups,
>>>   };
>>>     static struct attribute *cpu_stats_attrs[] = {
>>> @@ -212,10 +213,11 @@ static struct attribute *cpu_stats_attrs[] = {
>>>   #endif
>>>       NULL
>>>   };
>>> +ATTRIBUTE_GROUPS(cpu_stats);
>>>     static struct kobj_type cell_cpu_type = {
>>>       .sysfs_ops = &kobj_sysfs_ops,
>>> -    .default_attrs = cpu_stats_attrs,
>>> +    .default_groups = cpu_stats_groups,
>>>   };
>>>     static int print_cpumask(char *buf, size_t size, cpumask_t *mask,
>>> bool as_list)
>>> @@ -342,11 +344,12 @@ static struct attribute *cell_attrs[] = {
>>>       &cell_cpus_failed_list_attr.attr,
>>>       NULL,
>>>   };
>>> +ATTRIBUTE_GROUPS(cell);
>>>     static struct kobj_type cell_type = {
>>>       .release = jailhouse_cell_kobj_release,
>>>       .sysfs_ops = &kobj_sysfs_ops,
>>> -    .default_attrs = cell_attrs,
>>> +    .default_groups = cell_groups,
>>>   };
>>>     static struct cell_cpu *find_cell_cpu(struct cell *cell, unsigned
>>> int cpu)
>>
>> Which kernel versions are compatible with the new API?
> 
> With the latest v5.18 release, it becomes mandatory.
> 
> I just successfully compile-tested v5.17, v5.16, v5.14, v5.10, v5.4 and
> v5.2 (the latest one that works). Latest LTS 4.19.y and downwards won't
> compile.
> 
> The question is, if we want to demand at least v5.2, or introduce yet
> another workaround.

I think wrapping could be fairly simple in this case, and 4.19 may still
be used, and we actually wrap much further down, let's account for this
difference once again.

Jan

-- 
Siemens AG, Technology
Competence Center Embedded Linux

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jailhouse-dev/179b997b-4830-fb3b-792d-79c25fb39788%40siemens.com.

Reply via email to