[patch 9/9 v3] x86: export x86 boot_params to sysfs
Dave Young
dyoung at redhat.com
Thu Nov 21 21:45:06 EST 2013
On 11/21/13 at 08:45am, Greg KH wrote:
> > +static struct kobj_attribute boot_params_version_attr =
> > + __ATTR(version, S_IRUGO, boot_params_version_show, NULL);
>
> __ATTR_RO() please.
Will do
>
> > +static struct kobj_attribute type_attr =
> > + __ATTR(type, S_IRUGO, setup_data_type_show, NULL);
>
> __ATTR_RO() here too.
Will do
[snip]
> > +
> > + ret = get_setup_data_size(nr, &size);
> > + if (ret)
> > + goto out_kobj;
> > +
> > + data_attr.size = size;
> > + ret = sysfs_create_bin_file(kobj, &data_attr);
> > + if (ret)
> > + goto out_file;
> > + *kobjp = kobj;
>
> You just raced with userspace (creating and announcing the kobject and
> then, afterward, at some later point in time, created the sysfs files.
> Please use the groups option to create the files properly before
> announcing the kobject to userspace.
Will do
[snip]
> > + goto out_boot_params_kobj;
> > + ret = sysfs_create_bin_file(boot_params_kobj,
> > + &boot_params_data_attr);
> > + if (ret)
> > + goto out_create_file;
> > +
> > + ret = create_setup_data_nodes(boot_params_kobj);
> > + if (ret)
> > + goto out_create_bin;
> > +
> > + return 0;
>
> Same race condition here as well. Use a groups structure please.
>
Will use group attributes
Thanks for review
Dave
More information about the kexec
mailing list