projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[PATCH] pata_marvell: merge Mandriva patches
[powerpc.git]
/
drivers
/
char
/
tpm
/
tpm.c
diff --git
a/drivers/char/tpm/tpm.c
b/drivers/char/tpm/tpm.c
index
6889e7d
..
6e1329d
100644
(file)
--- a/
drivers/char/tpm/tpm.c
+++ b/
drivers/char/tpm/tpm.c
@@
-1130,7
+1130,7
@@
struct tpm_chip *tpm_register_hardware(struct device *dev, const struct tpm_vend
scnprintf(devname, DEVNAME_SIZE, "%s%d", "tpm", chip->dev_num);
chip->vendor.miscdev.name = devname;
scnprintf(devname, DEVNAME_SIZE, "%s%d", "tpm", chip->dev_num);
chip->vendor.miscdev.name = devname;
- chip->vendor.miscdev.
dev
= dev;
+ chip->vendor.miscdev.
parent
= dev;
chip->dev = get_device(dev);
if (misc_register(&chip->vendor.miscdev)) {
chip->dev = get_device(dev);
if (misc_register(&chip->vendor.miscdev)) {
@@
-1141,6
+1141,7
@@
struct tpm_chip *tpm_register_hardware(struct device *dev, const struct tpm_vend
put_device(dev);
clear_bit(chip->dev_num, dev_mask);
kfree(chip);
put_device(dev);
clear_bit(chip->dev_num, dev_mask);
kfree(chip);
+ kfree(devname);
return NULL;
}
return NULL;
}
@@
-1152,7
+1153,14
@@
struct tpm_chip *tpm_register_hardware(struct device *dev, const struct tpm_vend
spin_unlock(&driver_lock);
spin_unlock(&driver_lock);
- sysfs_create_group(&dev->kobj, chip->vendor.attr_group);
+ if (sysfs_create_group(&dev->kobj, chip->vendor.attr_group)) {
+ list_del(&chip->list);
+ put_device(dev);
+ clear_bit(chip->dev_num, dev_mask);
+ kfree(chip);
+ kfree(devname);
+ return NULL;
+ }
chip->bios_dir = tpm_bios_log_setup(devname);
chip->bios_dir = tpm_bios_log_setup(devname);