summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2017-11-02 11:32:17 -0400
committerPaul Gortmaker <paul.gortmaker@windriver.com>2017-11-02 11:32:17 -0400
commiteb60cbd0074d435bf50462b8b3d65c189248c1a0 (patch)
treec1d283d80088be86ecad49eee482f1868cdfbac6
parent8d927587f390536b18937a39eed4455aa530e919 (diff)
downloadlongterm-queue-4.8-eb60cbd0074d435bf50462b8b3d65c189248c1a0.tar.gz
tpm: drop patch n/a for 4.8.x kernels
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r--queue/series1
-rw-r--r--queue/tpm_tis-use-default-timeout-value-if-chip-reports-it.patch179
2 files changed, 0 insertions, 180 deletions
diff --git a/queue/series b/queue/series
index 049daa0..adee4ec 100644
--- a/queue/series
+++ b/queue/series
@@ -60,7 +60,6 @@ net-can-usb-gs_usb-Fix-buffer-on-stack.patch
ARCv2-save-r30-on-kernel-entry-as-gcc-uses-it-for-co.patch
ftrace-x86-Fix-triple-fault-with-graph-tracing-and-s.patch
timerfd-Protect-the-might-cancel-mechanism-proper.patch
-tpm_tis-use-default-timeout-value-if-chip-reports-it.patch
scsi-storvsc-Workaround-for-virtual-DVD-SCSI-version.patch
hwmon-it87-Avoid-registering-the-same-chip-on-both-S.patch
ceph-try-getting-buffer-capability-for-readahead-fad.patch
diff --git a/queue/tpm_tis-use-default-timeout-value-if-chip-reports-it.patch b/queue/tpm_tis-use-default-timeout-value-if-chip-reports-it.patch
deleted file mode 100644
index 612481b..0000000
--- a/queue/tpm_tis-use-default-timeout-value-if-chip-reports-it.patch
+++ /dev/null
@@ -1,179 +0,0 @@
-From 1d70fe9d9c3a4c627f9757cbba5d628687b121c1 Mon Sep 17 00:00:00 2001
-From: "Maciej S. Szmigiero" <mail@maciej.szmigiero.name>
-Date: Fri, 13 Jan 2017 22:37:00 +0100
-Subject: [PATCH] tpm_tis: use default timeout value if chip reports it as zero
-
-commit 1d70fe9d9c3a4c627f9757cbba5d628687b121c1 upstream.
-
-Since commit 1107d065fdf1 ("tpm_tis: Introduce intermediate layer for
-TPM access") Atmel 3203 TPM on ThinkPad X61S (TPM firmware version 13.9)
-no longer works. The initialization proceeds fine until we get and
-start using chip-reported timeouts - and the chip reports C and D
-timeouts of zero.
-
-It turns out that until commit 8e54caf407b98e ("tpm: Provide a generic
-means to override the chip returned timeouts") we had actually let
-default timeout values remain in this case, so let's bring back this
-behavior to make chips like Atmel 3203 work again.
-
-Use a common code that was introduced by that commit so a warning is
-printed in this case and /sys/class/tpm/tpm*/timeouts correctly says the
-timeouts aren't chip-original.
-
-Fixes: 1107d065fdf1 ("tpm_tis: Introduce intermediate layer for TPM access")
-Cc: stable@vger.kernel.org
-Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
-Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
-Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
-
-diff --git a/drivers/char/tpm/tpm-interface.c b/drivers/char/tpm/tpm-interface.c
-index fecdd3fa8126..a3461cbdde5f 100644
---- a/drivers/char/tpm/tpm-interface.c
-+++ b/drivers/char/tpm/tpm-interface.c
-@@ -522,8 +522,7 @@ static int tpm_startup(struct tpm_chip *chip, __be16 startup_type)
- int tpm_get_timeouts(struct tpm_chip *chip)
- {
- cap_t cap;
-- unsigned long new_timeout[4];
-- unsigned long old_timeout[4];
-+ unsigned long timeout_old[4], timeout_chip[4], timeout_eff[4];
- ssize_t rc;
-
- if (chip->flags & TPM_CHIP_FLAG_HAVE_TIMEOUTS)
-@@ -564,11 +563,15 @@ int tpm_get_timeouts(struct tpm_chip *chip)
- return rc;
- }
-
-- old_timeout[0] = be32_to_cpu(cap.timeout.a);
-- old_timeout[1] = be32_to_cpu(cap.timeout.b);
-- old_timeout[2] = be32_to_cpu(cap.timeout.c);
-- old_timeout[3] = be32_to_cpu(cap.timeout.d);
-- memcpy(new_timeout, old_timeout, sizeof(new_timeout));
-+ timeout_old[0] = jiffies_to_usecs(chip->timeout_a);
-+ timeout_old[1] = jiffies_to_usecs(chip->timeout_b);
-+ timeout_old[2] = jiffies_to_usecs(chip->timeout_c);
-+ timeout_old[3] = jiffies_to_usecs(chip->timeout_d);
-+ timeout_chip[0] = be32_to_cpu(cap.timeout.a);
-+ timeout_chip[1] = be32_to_cpu(cap.timeout.b);
-+ timeout_chip[2] = be32_to_cpu(cap.timeout.c);
-+ timeout_chip[3] = be32_to_cpu(cap.timeout.d);
-+ memcpy(timeout_eff, timeout_chip, sizeof(timeout_eff));
-
- /*
- * Provide ability for vendor overrides of timeout values in case
-@@ -576,16 +579,24 @@ int tpm_get_timeouts(struct tpm_chip *chip)
- */
- if (chip->ops->update_timeouts != NULL)
- chip->timeout_adjusted =
-- chip->ops->update_timeouts(chip, new_timeout);
-+ chip->ops->update_timeouts(chip, timeout_eff);
-
- if (!chip->timeout_adjusted) {
-- /* Don't overwrite default if value is 0 */
-- if (new_timeout[0] != 0 && new_timeout[0] < 1000) {
-- int i;
-+ /* Restore default if chip reported 0 */
-+ int i;
-
-+ for (i = 0; i < ARRAY_SIZE(timeout_eff); i++) {
-+ if (timeout_eff[i])
-+ continue;
-+
-+ timeout_eff[i] = timeout_old[i];
-+ chip->timeout_adjusted = true;
-+ }
-+
-+ if (timeout_eff[0] != 0 && timeout_eff[0] < 1000) {
- /* timeouts in msec rather usec */
-- for (i = 0; i != ARRAY_SIZE(new_timeout); i++)
-- new_timeout[i] *= 1000;
-+ for (i = 0; i != ARRAY_SIZE(timeout_eff); i++)
-+ timeout_eff[i] *= 1000;
- chip->timeout_adjusted = true;
- }
- }
-@@ -594,16 +605,16 @@ int tpm_get_timeouts(struct tpm_chip *chip)
- if (chip->timeout_adjusted) {
- dev_info(&chip->dev,
- HW_ERR "Adjusting reported timeouts: A %lu->%luus B %lu->%luus C %lu->%luus D %lu->%luus\n",
-- old_timeout[0], new_timeout[0],
-- old_timeout[1], new_timeout[1],
-- old_timeout[2], new_timeout[2],
-- old_timeout[3], new_timeout[3]);
-+ timeout_chip[0], timeout_eff[0],
-+ timeout_chip[1], timeout_eff[1],
-+ timeout_chip[2], timeout_eff[2],
-+ timeout_chip[3], timeout_eff[3]);
- }
-
-- chip->timeout_a = usecs_to_jiffies(new_timeout[0]);
-- chip->timeout_b = usecs_to_jiffies(new_timeout[1]);
-- chip->timeout_c = usecs_to_jiffies(new_timeout[2]);
-- chip->timeout_d = usecs_to_jiffies(new_timeout[3]);
-+ chip->timeout_a = usecs_to_jiffies(timeout_eff[0]);
-+ chip->timeout_b = usecs_to_jiffies(timeout_eff[1]);
-+ chip->timeout_c = usecs_to_jiffies(timeout_eff[2]);
-+ chip->timeout_d = usecs_to_jiffies(timeout_eff[3]);
-
- rc = tpm_getcap(chip, TPM_CAP_PROP_TIS_DURATION, &cap,
- "attempting to determine the durations");
-diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c
-index 0127af130cb1..7912dadc39be 100644
---- a/drivers/char/tpm/tpm_tis.c
-+++ b/drivers/char/tpm/tpm_tis.c
-@@ -159,7 +159,7 @@ static int tpm_tis_init(struct device *dev, struct tpm_info *tpm_info,
- irq = tpm_info->irq;
-
- if (itpm)
-- phy->priv.flags |= TPM_TIS_ITPM_POSSIBLE;
-+ phy->priv.flags |= TPM_TIS_ITPM_WORKAROUND;
-
- return tpm_tis_core_init(dev, &phy->priv, irq, &tpm_tcg,
- acpi_dev_handle);
-diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c
-index 7993678954a2..0cfc0eed8525 100644
---- a/drivers/char/tpm/tpm_tis_core.c
-+++ b/drivers/char/tpm/tpm_tis_core.c
-@@ -264,7 +264,7 @@ static int tpm_tis_send_data(struct tpm_chip *chip, u8 *buf, size_t len)
- struct tpm_tis_data *priv = dev_get_drvdata(&chip->dev);
- int rc, status, burstcnt;
- size_t count = 0;
-- bool itpm = priv->flags & TPM_TIS_ITPM_POSSIBLE;
-+ bool itpm = priv->flags & TPM_TIS_ITPM_WORKAROUND;
-
- if (request_locality(chip, 0) < 0)
- return -EBUSY;
-@@ -740,7 +740,7 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq,
- (chip->flags & TPM_CHIP_FLAG_TPM2) ? "2.0" : "1.2",
- vendor >> 16, rid);
-
-- if (!(priv->flags & TPM_TIS_ITPM_POSSIBLE)) {
-+ if (!(priv->flags & TPM_TIS_ITPM_WORKAROUND)) {
- probe = probe_itpm(chip);
- if (probe < 0) {
- rc = -ENODEV;
-@@ -748,7 +748,7 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq,
- }
-
- if (!!probe)
-- priv->flags |= TPM_TIS_ITPM_POSSIBLE;
-+ priv->flags |= TPM_TIS_ITPM_WORKAROUND;
- }
-
- /* Figure out the capabilities */
-diff --git a/drivers/char/tpm/tpm_tis_core.h b/drivers/char/tpm/tpm_tis_core.h
-index 9191aabbf9c2..e2212f021a02 100644
---- a/drivers/char/tpm/tpm_tis_core.h
-+++ b/drivers/char/tpm/tpm_tis_core.h
-@@ -80,7 +80,7 @@ enum tis_defaults {
- #define TPM_RID(l) (0x0F04 | ((l) << 12))
-
- enum tpm_tis_flags {
-- TPM_TIS_ITPM_POSSIBLE = BIT(0),
-+ TPM_TIS_ITPM_WORKAROUND = BIT(0),
- };
-
- struct tpm_tis_data {
---
-2.12.0
-