Since Linux commit cdb4f26a63c3 ("kobject: kobj_type: remove default_attrs"), the deprecated kobj member default_attrs is gone. It is replaced by default_groups.
Add a compatibility layer to support older, as well as latest kernel versions. Signed-off-by: Ralf Ramsauer <ralf.ramsa...@oth-regensburg.de> --- Note: only compile-time tested! driver/sysfs.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/driver/sysfs.c b/driver/sysfs.c index a604afa4..a5a02831 100644 --- a/driver/sysfs.c +++ b/driver/sysfs.c @@ -59,6 +59,14 @@ static const struct sysfs_ops cell_sysfs_ops = { }; #define kobj_sysfs_ops cell_sysfs_ops #endif /* < 3.14 */ + +#if LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0) +#define COMPAT_ATTRIBUTE_GROUPS(x) /* not used */ +#define DEFAULT_GROUPS(x) .default_attrs = x##_attrs +#else +#define COMPAT_ATTRIBUTE_GROUPS(x) ATTRIBUTE_GROUPS(x) +#define DEFAULT_GROUPS(x) .default_groups = x##_groups +#endif /* < 5.2 */ /* End of compatibility section - remove as version become obsolete */ static struct kobject *cells_dir; @@ -180,10 +188,11 @@ static struct attribute *cell_stats_attrs[] = { #endif NULL }; +COMPAT_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), }; static struct attribute *cpu_stats_attrs[] = { @@ -212,10 +221,11 @@ static struct attribute *cpu_stats_attrs[] = { #endif NULL }; +COMPAT_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), }; static int print_cpumask(char *buf, size_t size, cpumask_t *mask, bool as_list) @@ -342,11 +352,12 @@ static struct attribute *cell_attrs[] = { &cell_cpus_failed_list_attr.attr, NULL, }; +COMPAT_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), }; static struct cell_cpu *find_cell_cpu(struct cell *cell, unsigned int cpu) -- 2.36.0 -- 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/20220427181842.2116064-1-ralf.ramsauer%40oth-regensburg.de.