On Monday, May 30th, 2022 at 09:20, Greg KH gregkh@linuxfoundation.org wrote:
+static struct attribute *dma_buf_caps_attrs[] = {
- &dma_buf_sync_file_import_export_attr.attr,
- NULL,
+};
+static const struct attribute_group dma_buf_caps_attr_group = {
- .attrs = dma_buf_caps_attrs,
+};
Didn't we had macros for those? I think I have seen something for that.
Yes, please use ATTRIBUTE_GROUPS()
This doesn't allow the user to set a group name, and creates an unused "_groups" variable, causing warnings.
+static struct kobject *dma_buf_caps_kobj;
+int dma_buf_init_sysfs_capabilities(struct kset *kset) +{
- int ret;
- dma_buf_caps_kobj = kobject_create_and_add("caps", &kset->kobj);
- if (!dma_buf_caps_kobj)
return -ENOMEM;
- ret = sysfs_create_group(dma_buf_caps_kobj, &dma_buf_caps_attr_group);
Why do we have "raw" kobjects here?
A group can have a name, which puts it in the subdirectory of the object it is attached to. Please do that and do not create a new kobject.
I see, I'll switch to sysfs_create_group with a group name in the next version.
Thanks for the pointers!