* [GIT PULL] TPM fixes
@ 2011-09-22 16:09 Rajiv Andrade
0 siblings, 0 replies; only message in thread
From: Rajiv Andrade @ 2011-09-22 16:09 UTC (permalink / raw)
To: Linux kernel mailing list
Cc: James Morris, Peter Huewe, jwboyer, axel.lin, geert
Hi James,
Please pull the changes since commit 73beac95e91327b3dd903a62e3e569192267afe3:
TPM: TCG_ATMEL should depend on HAS_IOPORT (2011-09-22 12:35:45 -0300)
that are available in the git repository at:
git://github.com/srajiv/tpm.git for-james
Axel Lin (1):
TPM: tpm_nsc: Fix a double free of pdev in cleanup_nsc
Geert Uytterhoeven (1):
TPM: TCG_ATMEL should depend on HAS_IOPORT
Peter Huewe (2):
TPM: Call tpm_transmit with correct size
TPM: Zero buffer after copying to userspace
drivers/char/tpm/Kconfig | 1 +
drivers/char/tpm/tpm.c | 9 ++++++++-
drivers/char/tpm/tpm_nsc.c | 2 --
3 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/drivers/char/tpm/Kconfig b/drivers/char/tpm/Kconfig
index f6595ab..fa567f1 100644
--- a/drivers/char/tpm/Kconfig
+++ b/drivers/char/tpm/Kconfig
@@ -43,6 +43,7 @@ config TCG_NSC
config TCG_ATMEL
tristate "Atmel TPM Interface"
+ depends on PPC64 || HAS_IOPORT
---help---
If you have a TPM security chip from Atmel say Yes and it
will be accessible from within Linux. To compile this driver
diff --git a/drivers/char/tpm/tpm.c b/drivers/char/tpm/tpm.c
index e53af76..361a1df 100644
--- a/drivers/char/tpm/tpm.c
+++ b/drivers/char/tpm/tpm.c
@@ -383,6 +383,9 @@ static ssize_t tpm_transmit(struct tpm_chip *chip, const char *buf,
u32 count, ordinal;
unsigned long stop;
+ if (bufsiz > TPM_BUFSIZE)
+ bufsiz = TPM_BUFSIZE;
+
count = be32_to_cpu(*((__be32 *) (buf + 2)));
ordinal = be32_to_cpu(*((__be32 *) (buf + 6)));
if (count == 0)
@@ -1105,6 +1108,7 @@ ssize_t tpm_read(struct file *file, char __user *buf,
{
struct tpm_chip *chip = file->private_data;
ssize_t ret_size;
+ int rc;
del_singleshot_timer_sync(&chip->user_read_timer);
flush_work_sync(&chip->work);
@@ -1115,8 +1119,11 @@ ssize_t tpm_read(struct file *file, char __user *buf,
ret_size = size;
mutex_lock(&chip->buffer_mutex);
- if (copy_to_user(buf, chip->data_buffer, ret_size))
+ rc = copy_to_user(buf, chip->data_buffer, ret_size);
+ memset(chip->data_buffer, 0, ret_size);
+ if (rc)
ret_size = -EFAULT;
+
mutex_unlock(&chip->buffer_mutex);
}
diff --git a/drivers/char/tpm/tpm_nsc.c b/drivers/char/tpm/tpm_nsc.c
index 82facc9..4d24648 100644
--- a/drivers/char/tpm/tpm_nsc.c
+++ b/drivers/char/tpm/tpm_nsc.c
@@ -396,8 +396,6 @@ static void __exit cleanup_nsc(void)
if (pdev) {
tpm_nsc_remove(&pdev->dev);
platform_device_unregister(pdev);
- kfree(pdev);
- pdev = NULL;
}
platform_driver_unregister(&nsc_drv);
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2011-09-22 16:09 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-22 16:09 [GIT PULL] TPM fixes Rajiv Andrade
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.