On 12/6/19 6:15 PM, Greg KH wrote: > On Fri, Dec 06, 2019 at 05:54:31PM +0530, Sourabh Jain wrote: >> +static struct kobj_attribute release_attr = __ATTR(release_mem, >> 0200, NULL, >> fadump_release_memory_store); >> -static struct kobj_attribute fadump_attr = __ATTR(fadump_enabled, >> +static struct kobj_attribute enable_attr = __ATTR(enabled, >> 0444, fadump_enabled_show, >> NULL); > > __ATTR_RO()? > >> -static struct kobj_attribute fadump_register_attr = __ATTR(fadump_registered, >> +static struct kobj_attribute register_attr = __ATTR(registered, >> 0644, fadump_register_show, >> fadump_register_store); > > __ATTR_RW()? Thanks I was not aware of these macros. > > And then use an ATTRIBUTE_GROUP() macro to create a group so that you > then can do: > >> @@ -1452,11 +1450,47 @@ static void fadump_init_files(void) >> printk(KERN_ERR "fadump: unable to create debugfs file" >> " fadump_region\n"); >> >> + rc = sysfs_create_file(fadump_kobj, &enable_attr.attr); >> + if (rc) >> + pr_err("unable to create enabled sysfs file (%d)\n", >> + rc); >> + rc = sysfs_create_file(fadump_kobj, ®ister_attr.attr); >> + if (rc) >> + pr_err("unable to create registered sysfs file (%d)\n", >> + rc); >> + if (fw_dump.dump_active) { >> + rc = sysfs_create_file(fadump_kobj, &release_attr.attr); >> + if (rc) >> + pr_err("unable to create release_mem sysfs file (%d)\n", >> + rc); >> + } > > a single call to sysfs_create_groups() here instead of trying to unwind > the mess if something went wrong. > Sure, I will replace the individual calls with a single group call. Thanks, Sourabh Jain