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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to