misc_deregister(&chip->vendor.miscdev);
sysfs_remove_group(&dev->kobj, chip->vendor.attr_group);
+ tpm_remove_ppi(&dev->kobj);
tpm_bios_log_teardown(chip->bios_dir);
/* write it this way to be explicit (chip->dev == dev) */
goto put_device;
}
- if (sys_add_ppi(&dev->kobj)) {
+ if (tpm_add_ppi(&dev->kobj)) {
misc_deregister(&chip->vendor.miscdev);
goto put_device;
}
wait_queue_head_t *);
#ifdef CONFIG_ACPI
-extern ssize_t sys_add_ppi(struct kobject *parent);
+extern int tpm_add_ppi(struct kobject *);
+extern void tpm_remove_ppi(struct kobject *);
#else
-static inline ssize_t sys_add_ppi(struct kobject *parent)
+static inline int tpm_add_ppi(struct kobject *parent)
{
return 0;
}
+
+static inline void tpm_remove_ppi(struct kobject *parent)
+{
+}
#endif
&dev_attr_vs_operations.attr, NULL,
};
static struct attribute_group ppi_attr_grp = {
+ .name = "ppi",
.attrs = ppi_attrs
};
-ssize_t sys_add_ppi(struct kobject *parent)
+int tpm_add_ppi(struct kobject *parent)
{
- struct kobject *ppi;
- ppi = kobject_create_and_add("ppi", parent);
- if (sysfs_create_group(ppi, &ppi_attr_grp))
- return -EFAULT;
- else
- return 0;
+ return sysfs_create_group(parent, &ppi_attr_grp);
+}
+EXPORT_SYMBOL_GPL(tpm_add_ppi);
+
+void tpm_remove_ppi(struct kobject *parent)
+{
+ sysfs_remove_group(parent, &ppi_attr_grp);
}
-EXPORT_SYMBOL_GPL(sys_add_ppi);
+EXPORT_SYMBOL_GPL(tpm_remove_ppi);
MODULE_LICENSE("GPL");