Re: [EXT] Re: [PATCH] driver: sysfs: Replace default_attrs with default_groups

2022-04-27 Thread Jan Kiszka
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 
>>> ---
>>>   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 = _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 = _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[] = {
>>>   _cpus_failed_list_attr.attr,
>>>   NULL,
>>>   };
>>> +ATTRIBUTE_GROUPS(cell);
>>>     static struct kobj_type cell_type = {
>>>   .release = jailhouse_cell_kobj_release,
>>>   .sysfs_ops = _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 jailhouse-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jailhouse-dev/179b997b-4830-fb3b-792d-79c25fb39788%40siemens.com.


Re: [EXT] Re: [PATCH] driver: sysfs: Replace default_attrs with default_groups

2022-04-27 Thread Ralf Ramsauer




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 
---
  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 = _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 = _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[] = {
_cpus_failed_list_attr.attr,
NULL,
  };
+ATTRIBUTE_GROUPS(cell);
  
  static struct kobj_type cell_type = {

.release = jailhouse_cell_kobj_release,
.sysfs_ops = _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.


  Ralf

--
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 jailhouse-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jailhouse-dev/2e24bb64-4111-a75c-1ed2-c79a717b5500%40oth-regensburg.de.


Re: [PATCH] driver: sysfs: Replace default_attrs with default_groups

2022-04-27 Thread Jan Kiszka
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 
> ---
>  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 = _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 = _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[] = {
>   _cpus_failed_list_attr.attr,
>   NULL,
>  };
> +ATTRIBUTE_GROUPS(cell);
>  
>  static struct kobj_type cell_type = {
>   .release = jailhouse_cell_kobj_release,
>   .sysfs_ops = _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?

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 jailhouse-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jailhouse-dev/c2c4c771-6772-9511-4b47-49e2473d5531%40siemens.com.