projects
/
linux-drm-fsl-dcu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge ../linux-2.6-watchdog-mm
[linux-drm-fsl-dcu.git]
/
drivers
/
char
/
tpm
/
tpm.c
diff --git
a/drivers/char/tpm/tpm.c
b/drivers/char/tpm/tpm.c
index 6889e7db3aff5285dd7824317c3f6469fc2e00c2..6ad2d3bb945c06fc2dc86d92eaa8d2fa410c0308 100644
(file)
--- a/
drivers/char/tpm/tpm.c
+++ b/
drivers/char/tpm/tpm.c
@@
-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);