[PATCH] tpm: locking fixes
Add a missing lock in the register hardware and fix a misplaced lock release release. Signed-off-by: Kylene Hall <kjhall@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
d9e5b6bf9c
commit
5e976d5557
|
@ -447,15 +447,15 @@ EXPORT_SYMBOL_GPL(tpm_open);
|
|||
int tpm_release(struct inode *inode, struct file *file)
|
||||
{
|
||||
struct tpm_chip *chip = file->private_data;
|
||||
|
||||
file->private_data = NULL;
|
||||
|
||||
spin_lock(&driver_lock);
|
||||
file->private_data = NULL;
|
||||
chip->num_opens--;
|
||||
del_singleshot_timer_sync(&chip->user_read_timer);
|
||||
atomic_set(&chip->data_pending, 0);
|
||||
|
||||
pci_dev_put(chip->pci_dev);
|
||||
kfree(chip->data_buffer);
|
||||
spin_unlock(&driver_lock);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -665,10 +665,14 @@ dev_num_search_complete:
|
|||
return -ENODEV;
|
||||
}
|
||||
|
||||
spin_lock(&driver_lock);
|
||||
|
||||
pci_set_drvdata(pci_dev, chip);
|
||||
|
||||
list_add(&chip->list, &tpm_chip_list);
|
||||
|
||||
spin_unlock(&driver_lock);
|
||||
|
||||
sysfs_create_group(&pci_dev->dev.kobj, chip->vendor->attr_group);
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue