On Wed, Jul 04, 2012 at 06:05:19PM +0800, Yanfei Zhang wrote: > +int vmcs_sysfs_add(struct device *dev) > +{ > + return sysfs_create_group(&dev->kobj, &vmcs_attr_group); > +} > + > +void vmcs_sysfs_remove(struct device *dev) > +{ > + sysfs_remove_group(&dev->kobj, &vmcs_attr_group); > +} Why are these "add" and "remove" functions here? Shouldn't you just write the lines out where you call them instead, as they are only called once. And does this race with adding new cpus to the system (is the uevent being sent to userspace before the attributes are added?) If so, please fix that. thanks, greg k-h