Messages in this thread Patch in this message | | | Date | Wed, 27 Apr 2005 17:19:25 -0500 (CDT) | From | Kylene Hall <> | Subject | [PATCH 12 of 12] Fix Tpm driver -- locks |
| |
A lock in the register hardware is missing and the one in release is misplaced. This patch fixes these issues.
Signed-off-by: Kylene Hall <kjhall@us.ibm.com> --- --- linux-2.6.12-rc2/drivers/char/tpm/tpm.c 2005-04-27 14:19:17.000000000 -0500 +++ linux-2.6.12-rc2-tpmdd/drivers/char/tpm/tpm.c 2005-04-27 14:25:04.000000000 -0500 @@ -445,15 +445,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); + for (i = 0; i < TPM_NUM_ATTR; i++) device_create_file(&pci_dev->dev, &chip->vendor->attr[i]); - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |