On Wed, Oct 15, 2014 at 01:35:14PM +0200, Jarkko Sakkinen wrote: > +int tpm2_sysfs_add_device(struct tpm_chip *chip) > +{ > + struct pcr_bank *pcr_bank; > + struct kobject *pcrs_kobj; > + struct device *dev = chip->dev; > + int rc; > + > + rc = sysfs_create_group(&chip->vendor.miscdev.this_device->kobj, > + &tpm_dev_group); > + if (rc) { > + dev_err(dev, "failed to create sysfs attributes, %d\n", rc); > + return rc; > + } You just raced and created sysfs files _after_ userspace saw that your device was enabled. > + pcrs_kobj = kobject_create_and_add("pcrs", > + &chip->vendor.miscdev.this_device->kobj); Ick, no no no no. Never create a kobject under a 'struct device'. You just lost all libudev support for any attribute you created under here, not good at all. Use a "real" device if you really want a sub-device, not a kobject. thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html