On Mon, Jun 06, 2016 at 08:37:26PM -0700, Ed Swierk wrote: > Mysterious TPM behavior can be difficult to track down through all the > layers of software. Add error messages for conditions that should > never happen. Also include the manufacturer ID along with other chip > data printed during init. > > Signed-off-by: Ed Swierk <eswi...@skyportsystems.com>
Reviewed-by: Jarkko Sakkinen <jarkko.sakki...@linux.intel.com> PS. Please include at minimum also linux-ker...@vger.kernel.org and linux-security-mod...@vger.kernel.org for these patches. Thanks. > --- > drivers/char/tpm/tpm_tis.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c > index 65f7eec..088fa86 100644 > --- a/drivers/char/tpm/tpm_tis.c > +++ b/drivers/char/tpm/tpm_tis.c > @@ -299,6 +299,8 @@ static int tpm_tis_recv(struct tpm_chip *chip, u8 *buf, > size_t count) > > expected = be32_to_cpu(*(__be32 *) (buf + 2)); > if (expected > count) { > + dev_err(chip->pdev, "Response too long (wanted %zd, got %d)\n", > + count, expected); > size = -EIO; > goto out; > } > @@ -366,6 +368,8 @@ static int tpm_tis_send_data(struct tpm_chip *chip, u8 > *buf, size_t len) > &chip->vendor.int_queue, false); > status = tpm_tis_status(chip); > if (!itpm && (status & TPM_STS_DATA_EXPECT) == 0) { > + dev_err(chip->pdev, "Chip not accepting %zd bytes\n", > + len - count); > rc = -EIO; > goto out_err; > } > @@ -378,6 +382,7 @@ static int tpm_tis_send_data(struct tpm_chip *chip, u8 > *buf, size_t len) > &chip->vendor.int_queue, false); > status = tpm_tis_status(chip); > if ((status & TPM_STS_DATA_EXPECT) != 0) { > + dev_err(chip->pdev, "Chip not accepting last byte\n"); > rc = -EIO; > goto out_err; > } > @@ -689,8 +694,9 @@ static int tpm_tis_init(struct device *dev, struct > tpm_info *tpm_info, > vendor = ioread32(chip->vendor.iobase + TPM_DID_VID(0)); > chip->vendor.manufacturer_id = vendor; > > - dev_info(dev, "%s TPM (device-id 0x%X, rev-id %d)\n", > + dev_info(dev, "%s TPM (manufacturer-id 0x%X, device-id 0x%X, rev-id > %d)\n", > (chip->flags & TPM_CHIP_FLAG_TPM2) ? "2.0" : "1.2", > + chip->vendor.manufacturer_id, > vendor >> 16, ioread8(chip->vendor.iobase + TPM_RID(0))); > > if (!itpm) { > -- > 1.9.1 /Jarko ------------------------------------------------------------------------------ What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e _______________________________________________ tpmdd-devel mailing list tpmdd-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tpmdd-devel