mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Shaikh, Azhar" <azhar.shaikh@intel.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Cc: "stable@vger.kernel.org" <stable@vger.kernel.org>,
	Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Subject: RE: [PATCH 4.15 119/146] tpm: Keep CLKRUN enabled throughout the duration of transmit_cmd()
Date: Wed, 14 Mar 2018 00:42:47 +0000	[thread overview]
Message-ID: <5FFFAD06ADE1CA4381B3F0F7C6AF58280769BC29@ORSMSX109.amr.corp.intel.com> (raw)
In-Reply-To: <20180313152329.487403397@linuxfoundation.org>

No objections from my side.

Please merge.

Regards,
Azhar Shaikh

>-----Original Message-----
>From: Greg Kroah-Hartman [mailto:gregkh@linuxfoundation.org]
>Sent: Tuesday, March 13, 2018 8:25 AM
>To: linux-kernel@vger.kernel.org
>Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>;
>stable@vger.kernel.org; Shaikh, Azhar <azhar.shaikh@intel.com>; Jarkko
>Sakkinen <jarkko.sakkinen@linux.intel.com>
>Subject: [PATCH 4.15 119/146] tpm: Keep CLKRUN enabled throughout the
>duration of transmit_cmd()
>
>4.15-stable review patch.  If anyone has any objections, please let me know.
>
>------------------
>
>From: Azhar Shaikh <azhar.shaikh@intel.com>
>
>commit b3e958ce4c585bf666de249dc794971ebc62d2d3 upstream.
>
>Commit 5e572cab92f0bb5 ("tpm: Enable CLKRUN protocol for Braswell
>systems") disabled CLKRUN protocol during TPM transactions and re-enabled
>once the transaction is completed. But there were still some corner cases
>observed where, reading of TPM header failed for savestate command while
>going to suspend, which resulted in suspend failure.
>To fix this issue keep the CLKRUN protocol disabled for the entire duration of
>a single TPM command and not disabling and re-enabling again for every TPM
>transaction. For the other TPM accesses outside TPM command flow, add a
>higher level of disabling and re-enabling the CLKRUN protocol, instead of
>doing for every TPM transaction.
>
>Fixes: 5e572cab92f0bb5 ("tpm: Enable CLKRUN protocol for Braswell
>systems")
>Signed-off-by: Azhar Shaikh <azhar.shaikh@intel.com>
>Reviewed-by: Jarkko Sakkinen  <jarkko.sakkinen@linux.intel.com>
>Tested-by: Jarkko Sakkinen  <jarkko.sakkinen@linux.intel.com>
>Signed-off-by: Jarkko Sakkinen  <jarkko.sakkinen@linux.intel.com>
>Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>
>---
> drivers/char/tpm/tpm-interface.c |    6 ++
> drivers/char/tpm/tpm_tis.c       |   92 +++------------------------------
> drivers/char/tpm/tpm_tis_core.c  |  108
>+++++++++++++++++++++++++++++++++++----
> drivers/char/tpm/tpm_tis_core.h  |    4 +
> include/linux/tpm.h              |    1
> 5 files changed, 119 insertions(+), 92 deletions(-)
>
>--- a/drivers/char/tpm/tpm-interface.c
>+++ b/drivers/char/tpm/tpm-interface.c
>@@ -413,6 +413,9 @@ ssize_t tpm_transmit(struct tpm_chip *ch
> 	if (chip->dev.parent)
> 		pm_runtime_get_sync(chip->dev.parent);
>
>+	if (chip->ops->clk_enable != NULL)
>+		chip->ops->clk_enable(chip, true);
>+
> 	/* Store the decision as chip->locality will be changed. */
> 	need_locality = chip->locality == -1;
>
>@@ -489,6 +492,9 @@ out:
> 		chip->locality = -1;
> 	}
> out_no_locality:
>+	if (chip->ops->clk_enable != NULL)
>+		chip->ops->clk_enable(chip, false);
>+
> 	if (chip->dev.parent)
> 		pm_runtime_put_sync(chip->dev.parent);
>
>--- a/drivers/char/tpm/tpm_tis.c
>+++ b/drivers/char/tpm/tpm_tis.c
>@@ -133,79 +133,17 @@ static int check_acpi_tpm2(struct device  }  #endif
>
>-#ifdef CONFIG_X86
>-#define LPC_CNTRL_OFFSET		0x84
>-#define LPC_CLKRUN_EN			(1 << 2)
>-
>-/**
>- * tpm_platform_begin_xfer() - clear LPC CLKRUN_EN i.e. clocks will be
>running
>- */
>-static void tpm_platform_begin_xfer(struct tpm_tis_data *data) -{
>-	u32 clkrun_val;
>-
>-	if (!is_bsw())
>-		return;
>-
>-	clkrun_val = ioread32(data->ilb_base_addr + LPC_CNTRL_OFFSET);
>-
>-	/* Disable LPC CLKRUN# */
>-	clkrun_val &= ~LPC_CLKRUN_EN;
>-	iowrite32(clkrun_val, data->ilb_base_addr + LPC_CNTRL_OFFSET);
>-
>-	/*
>-	 * Write any random value on port 0x80 which is on LPC, to make
>-	 * sure LPC clock is running before sending any TPM command.
>-	 */
>-	outb(0xCC, 0x80);
>-
>-}
>-
>-/**
>- * tpm_platform_end_xfer() - set LPC CLKRUN_EN i.e. clocks can be turned
>off
>- */
>-static void tpm_platform_end_xfer(struct tpm_tis_data *data) -{
>-	u32 clkrun_val;
>-
>-	if (!is_bsw())
>-		return;
>-
>-	clkrun_val = ioread32(data->ilb_base_addr + LPC_CNTRL_OFFSET);
>-
>-	/* Enable LPC CLKRUN# */
>-	clkrun_val |= LPC_CLKRUN_EN;
>-	iowrite32(clkrun_val, data->ilb_base_addr + LPC_CNTRL_OFFSET);
>-
>-	/*
>-	 * Write any random value on port 0x80 which is on LPC, to make
>-	 * sure LPC clock is running before sending any TPM command.
>-	 */
>-	outb(0xCC, 0x80);
>-
>-}
>-#else
>-static void tpm_platform_begin_xfer(struct tpm_tis_data *data) -{ -}
>-
>-static void tpm_platform_end_xfer(struct tpm_tis_data *data) -{ -} -#endif
>-
> static int tpm_tcg_read_bytes(struct tpm_tis_data *data, u32 addr, u16 len,
> 			      u8 *result)
> {
> 	struct tpm_tis_tcg_phy *phy = to_tpm_tis_tcg_phy(data);
>
>-	tpm_platform_begin_xfer(data);
>+	if (is_bsw() && !(data->flags & TPM_TIS_CLK_ENABLE))
>+		WARN(1, "CLKRUN not enabled!\n");
>
> 	while (len--)
> 		*result++ = ioread8(phy->iobase + addr);
>
>-	tpm_platform_end_xfer(data);
>-
> 	return 0;
> }
>
>@@ -214,13 +152,12 @@ static int tpm_tcg_write_bytes(struct tp  {
> 	struct tpm_tis_tcg_phy *phy = to_tpm_tis_tcg_phy(data);
>
>-	tpm_platform_begin_xfer(data);
>+	if (is_bsw() && !(data->flags & TPM_TIS_CLK_ENABLE))
>+		WARN(1, "CLKRUN not enabled!\n");
>
> 	while (len--)
> 		iowrite8(*value++, phy->iobase + addr);
>
>-	tpm_platform_end_xfer(data);
>-
> 	return 0;
> }
>
>@@ -228,12 +165,11 @@ static int tpm_tcg_read16(struct tpm_tis  {
> 	struct tpm_tis_tcg_phy *phy = to_tpm_tis_tcg_phy(data);
>
>-	tpm_platform_begin_xfer(data);
>+	if (is_bsw() && !(data->flags & TPM_TIS_CLK_ENABLE))
>+		WARN(1, "CLKRUN not enabled!\n");
>
> 	*result = ioread16(phy->iobase + addr);
>
>-	tpm_platform_end_xfer(data);
>-
> 	return 0;
> }
>
>@@ -241,12 +177,11 @@ static int tpm_tcg_read32(struct tpm_tis  {
> 	struct tpm_tis_tcg_phy *phy = to_tpm_tis_tcg_phy(data);
>
>-	tpm_platform_begin_xfer(data);
>+	if (is_bsw() && !(data->flags & TPM_TIS_CLK_ENABLE))
>+		WARN(1, "CLKRUN not enabled!\n");
>
> 	*result = ioread32(phy->iobase + addr);
>
>-	tpm_platform_end_xfer(data);
>-
> 	return 0;
> }
>
>@@ -254,12 +189,11 @@ static int tpm_tcg_write32(struct tpm_ti  {
> 	struct tpm_tis_tcg_phy *phy = to_tpm_tis_tcg_phy(data);
>
>-	tpm_platform_begin_xfer(data);
>+	if (is_bsw() && !(data->flags & TPM_TIS_CLK_ENABLE))
>+		WARN(1, "CLKRUN not enabled!\n");
>
> 	iowrite32(value, phy->iobase + addr);
>
>-	tpm_platform_end_xfer(data);
>-
> 	return 0;
> }
>
>@@ -341,9 +275,6 @@ static void tpm_tis_pnp_remove(struct pn
>
> 	tpm_chip_unregister(chip);
> 	tpm_tis_remove(chip);
>-	if (is_bsw())
>-		iounmap(priv->ilb_base_addr);
>-
> }
>
> static struct pnp_driver tis_pnp_driver = { @@ -395,9 +326,6 @@ static int
>tpm_tis_plat_remove(struct pl
> 	tpm_chip_unregister(chip);
> 	tpm_tis_remove(chip);
>
>-	if (is_bsw())
>-		iounmap(priv->ilb_base_addr);
>-
> 	return 0;
> }
>
>--- a/drivers/char/tpm/tpm_tis_core.c
>+++ b/drivers/char/tpm/tpm_tis_core.c
>@@ -31,6 +31,8 @@
> #include "tpm.h"
> #include "tpm_tis_core.h"
>
>+static void tpm_tis_clkrun_enable(struct tpm_chip *chip, bool value);
>+
> /* Before we attempt to access the TPM we must see that the valid bit is set.
>  * The specification says that this bit is 0 at reset and remains 0 until the
>  * 'TPM has gone through its self test and initialization and has established
>@@ -422,19 +424,28 @@ static bool tpm_tis_update_timeouts(stru
> 	int i, rc;
> 	u32 did_vid;
>
>+	if (chip->ops->clk_enable != NULL)
>+		chip->ops->clk_enable(chip, true);
>+
> 	rc = tpm_tis_read32(priv, TPM_DID_VID(0), &did_vid);
> 	if (rc < 0)
>-		return rc;
>+		goto out;
>
> 	for (i = 0; i != ARRAY_SIZE(vendor_timeout_overrides); i++) {
> 		if (vendor_timeout_overrides[i].did_vid != did_vid)
> 			continue;
> 		memcpy(timeout_cap,
>vendor_timeout_overrides[i].timeout_us,
> 		       sizeof(vendor_timeout_overrides[i].timeout_us));
>-		return true;
>+		rc = true;
> 	}
>
>-	return false;
>+	rc = false;
>+
>+out:
>+	if (chip->ops->clk_enable != NULL)
>+		chip->ops->clk_enable(chip, false);
>+
>+	return rc;
> }
>
> /*
>@@ -654,14 +665,74 @@ void tpm_tis_remove(struct tpm_chip *chi
> 	u32 interrupt;
> 	int rc;
>
>+	tpm_tis_clkrun_enable(chip, true);
>+
> 	rc = tpm_tis_read32(priv, reg, &interrupt);
> 	if (rc < 0)
> 		interrupt = 0;
>
> 	tpm_tis_write32(priv, reg, ~TPM_GLOBAL_INT_ENABLE & interrupt);
>+
>+	tpm_tis_clkrun_enable(chip, false);
>+
>+	if (priv->ilb_base_addr)
>+		iounmap(priv->ilb_base_addr);
> }
> EXPORT_SYMBOL_GPL(tpm_tis_remove);
>
>+/**
>+ * tpm_tis_clkrun_enable() - Keep clkrun protocol disabled for entire
>duration
>+ *                           of a single TPM command
>+ * @chip:	TPM chip to use
>+ * @value:	1 - Disable CLKRUN protocol, so that clocks are free running
>+ *		0 - Enable CLKRUN protocol
>+ * Call this function directly in tpm_tis_remove() in error or driver
>+removal
>+ * path, since the chip->ops is set to NULL in tpm_chip_unregister().
>+ */
>+static void tpm_tis_clkrun_enable(struct tpm_chip *chip, bool value) {
>+	struct tpm_tis_data *data = dev_get_drvdata(&chip->dev);
>+	u32 clkrun_val;
>+
>+	if (!IS_ENABLED(CONFIG_X86) || !is_bsw())
>+		return;
>+
>+	if (value) {
>+		data->flags |= TPM_TIS_CLK_ENABLE;
>+		data->clkrun_enabled++;
>+		if (data->clkrun_enabled > 1)
>+			return;
>+		clkrun_val = ioread32(data->ilb_base_addr +
>LPC_CNTRL_OFFSET);
>+
>+		/* Disable LPC CLKRUN# */
>+		clkrun_val &= ~LPC_CLKRUN_EN;
>+		iowrite32(clkrun_val, data->ilb_base_addr +
>LPC_CNTRL_OFFSET);
>+
>+		/*
>+		 * Write any random value on port 0x80 which is on LPC, to
>make
>+		 * sure LPC clock is running before sending any TPM
>command.
>+		 */
>+		outb(0xCC, 0x80);
>+	} else {
>+		data->clkrun_enabled--;
>+		if (data->clkrun_enabled)
>+			return;
>+
>+		clkrun_val = ioread32(data->ilb_base_addr +
>LPC_CNTRL_OFFSET);
>+
>+		/* Enable LPC CLKRUN# */
>+		clkrun_val |= LPC_CLKRUN_EN;
>+		iowrite32(clkrun_val, data->ilb_base_addr +
>LPC_CNTRL_OFFSET);
>+
>+		/*
>+		 * Write any random value on port 0x80 which is on LPC, to
>make
>+		 * sure LPC clock is running before sending any TPM
>command.
>+		 */
>+		outb(0xCC, 0x80);
>+		data->flags &= ~TPM_TIS_CLK_ENABLE;
>+	}
>+}
>+
> static const struct tpm_class_ops tpm_tis = {
> 	.flags = TPM_OPS_AUTO_STARTUP,
> 	.status = tpm_tis_status,
>@@ -674,6 +745,7 @@ static const struct tpm_class_ops tpm_ti
> 	.req_canceled = tpm_tis_req_canceled,
> 	.request_locality = request_locality,
> 	.relinquish_locality = release_locality,
>+	.clk_enable = tpm_tis_clkrun_enable,
> };
>
> int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq,
>@@ -708,6 +780,9 @@ int tpm_tis_core_init(struct device *dev
> 			return -ENOMEM;
> 	}
>
>+	if (chip->ops->clk_enable != NULL)
>+		chip->ops->clk_enable(chip, true);
>+
> 	if (wait_startup(chip, 0) != 0) {
> 		rc = -ENODEV;
> 		goto out_err;
>@@ -799,14 +874,18 @@ int tpm_tis_core_init(struct device *dev
> 	}
>
> 	rc = tpm_chip_register(chip);
>-	if (rc && is_bsw())
>-		iounmap(priv->ilb_base_addr);
>+	if (rc)
>+		goto out_err;
>
>-	return rc;
>+	if (chip->ops->clk_enable != NULL)
>+		chip->ops->clk_enable(chip, false);
>+
>+	return 0;
> out_err:
>+	if ((chip->ops != NULL) && (chip->ops->clk_enable != NULL))
>+		chip->ops->clk_enable(chip, false);
>+
> 	tpm_tis_remove(chip);
>-	if (is_bsw())
>-		iounmap(priv->ilb_base_addr);
>
> 	return rc;
> }
>@@ -819,22 +898,31 @@ static void tpm_tis_reenable_interrupts(
> 	u32 intmask;
> 	int rc;
>
>+	if (chip->ops->clk_enable != NULL)
>+		chip->ops->clk_enable(chip, true);
>+
> 	/* reenable interrupts that device may have lost or
> 	 * BIOS/firmware may have disabled
> 	 */
> 	rc = tpm_tis_write8(priv, TPM_INT_VECTOR(priv->locality), priv->irq);
> 	if (rc < 0)
>-		return;
>+		goto out;
>
> 	rc = tpm_tis_read32(priv, TPM_INT_ENABLE(priv->locality),
>&intmask);
> 	if (rc < 0)
>-		return;
>+		goto out;
>
> 	intmask |= TPM_INTF_CMD_READY_INT
> 	    | TPM_INTF_LOCALITY_CHANGE_INT |
>TPM_INTF_DATA_AVAIL_INT
> 	    | TPM_INTF_STS_VALID_INT | TPM_GLOBAL_INT_ENABLE;
>
> 	tpm_tis_write32(priv, TPM_INT_ENABLE(priv->locality), intmask);
>+
>+out:
>+	if (chip->ops->clk_enable != NULL)
>+		chip->ops->clk_enable(chip, false);
>+
>+	return;
> }
>
> int tpm_tis_resume(struct device *dev)
>--- a/drivers/char/tpm/tpm_tis_core.h
>+++ b/drivers/char/tpm/tpm_tis_core.h
>@@ -79,11 +79,14 @@ enum tis_defaults {
> #define	TPM_DID_VID(l)			(0x0F00 | ((l) << 12))
> #define	TPM_RID(l)			(0x0F04 | ((l) << 12))
>
>+#define LPC_CNTRL_OFFSET		0x84
>+#define LPC_CLKRUN_EN			(1 << 2)
> #define INTEL_LEGACY_BLK_BASE_ADDR	0xFED08000
> #define ILB_REMAP_SIZE			0x100
>
> enum tpm_tis_flags {
> 	TPM_TIS_ITPM_WORKAROUND		= BIT(0),
>+	TPM_TIS_CLK_ENABLE		= BIT(1),
> };
>
> struct tpm_tis_data {
>@@ -93,6 +96,7 @@ struct tpm_tis_data {
> 	bool irq_tested;
> 	unsigned int flags;
> 	void __iomem *ilb_base_addr;
>+	u16 clkrun_enabled;
> 	wait_queue_head_t int_queue;
> 	wait_queue_head_t read_queue;
> 	const struct tpm_tis_phy_ops *phy_ops;
>--- a/include/linux/tpm.h
>+++ b/include/linux/tpm.h
>@@ -50,6 +50,7 @@ struct tpm_class_ops {
> 				unsigned long *timeout_cap);
> 	int (*request_locality)(struct tpm_chip *chip, int loc);
> 	void (*relinquish_locality)(struct tpm_chip *chip, int loc);
>+	void (*clk_enable)(struct tpm_chip *chip, bool value);
> };
>
> #if defined(CONFIG_TCG_TPM) || defined(CONFIG_TCG_TPM_MODULE)
>


  reply	other threads:[~2018-03-14  0:43 UTC|newest]

Thread overview: 160+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-13 15:22 [PATCH 4.15 000/146] 4.15.10-stable review Greg Kroah-Hartman
2018-03-13 15:22 ` [PATCH 4.15 001/146] RDMA/ucma: Limit possible option size Greg Kroah-Hartman
2018-03-13 15:22 ` [PATCH 4.15 002/146] RDMA/ucma: Check that user doesnt overflow QP state Greg Kroah-Hartman
2018-03-13 15:22 ` [PATCH 4.15 003/146] RDMA/mlx5: Fix integer overflow while resizing CQ Greg Kroah-Hartman
2018-03-13 15:22 ` [PATCH 4.15 004/146] bpf: cpumap: use GFP_KERNEL instead of GFP_ATOMIC in __cpu_map_entry_alloc() Greg Kroah-Hartman
2018-03-13 15:22 ` [PATCH 4.15 005/146] IB/uverbs: Improve lockdep_check Greg Kroah-Hartman
2018-03-13 15:22 ` [PATCH 4.15 006/146] mac80211_hwsim: dont use WQ_MEM_RECLAIM Greg Kroah-Hartman
2018-03-13 15:22 ` [PATCH 4.15 007/146] net/smc: fix NULL pointer dereference on sock_create_kern() error path Greg Kroah-Hartman
2018-03-13 15:22 ` [PATCH 4.15 008/146] regulator: stm32-vrefbuf: fix check on ready flag Greg Kroah-Hartman
2018-03-13 15:22 ` [PATCH 4.15 009/146] drm/i915: Check for fused or unused pipes Greg Kroah-Hartman
2018-03-13 15:22 ` [PATCH 4.15 010/146] drm/i915/audio: fix check for av_enc_map overflow Greg Kroah-Hartman
2018-03-13 15:22 ` [PATCH 4.15 011/146] drm/i915: Fix rsvd2 mask when out-fence is returned Greg Kroah-Hartman
2018-03-13 15:22 ` [PATCH 4.15 012/146] drm/i915: Clear the in-use marker on execbuf failure Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 013/146] drm/i915: Disable DC states around GMBUS on GLK Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 014/146] drm/i915: Update watermark state correctly in sanitize_watermarks Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 015/146] drm/i915: Try EDID bitbanging on HDMI after failed read Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 016/146] drm/i915/perf: fix perf stream opening lock Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 017/146] scsi: core: Avoid that ATA error handling can trigger a kernel hang or oops Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 018/146] scsi: qla2xxx: Fix NULL pointer crash due to active timer for ABTS Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 019/146] drm/i915: Always call to intel_display_set_init_power() in resume_early Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 020/146] workqueue: Allow retrieval of current tasks work struct Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 021/146] drm: Allow determining if current task is output poll worker Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 022/146] drm/nouveau: Fix deadlock on runtime suspend Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 023/146] drm/radeon: " Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 024/146] drm/amdgpu: " Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 025/146] drm/nouveau: prefer XBGR2101010 for addfb ioctl Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 026/146] drm/amd/powerplay/smu7: allow mclk switching with no displays Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 027/146] drm/amd/powerplay/vega10: " Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 028/146] Revert "drm/radeon/pm: autoswitch power state when in balanced mode" Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 029/146] drm/amd/display: check for ipp before calling cursor operations Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 030/146] drm/radeon: insist on 32-bit DMA for Cedar on PPC64/PPC64LE Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 031/146] drm/amd/powerplay: fix power over limit on Fiji Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 032/146] drm/amd/display: Default HDMI6G support to true. Log VBIOS table error Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 033/146] drm/amdgpu: used cached pcie gen info for SI (v2) Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 034/146] drm/amdgpu: Notify sbios device ready before send request Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 035/146] drm/radeon: fix KV harvesting Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 036/146] drm/amdgpu: " Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 037/146] drm/amdgpu:Correct max uvd handles Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 038/146] drm/amdgpu:Always save uvd vcpu_bo in VM Mode Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 039/146] ovl: redirect_dir=nofollow should not follow redirect for opaque lower Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 040/146] MIPS: BMIPS: Do not mask IPIs during suspend Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 041/146] MIPS: ath25: Check for kzalloc allocation failure Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 042/146] MIPS: OCTEON: irq: Check for null return on kzalloc allocation Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 043/146] PCI: dwc: Fix enumeration end when reaching root subordinate Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 044/146] Input: matrix_keypad - fix race when disabling interrupts Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 045/146] Revert "Input: synaptics - Lenovo Thinkpad T460p devices should use RMI" Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 046/146] bug: use %pB in BUG and stack protector failure Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 047/146] lib/bug.c: exclude non-BUG/WARN exceptions from report_bug() Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 048/146] mm/memblock.c: hardcode the end_pfn being -1 Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 049/146] mm/page_alloc: fix memmap_init_zone pageblock alignment Greg Kroah-Hartman
2018-03-13 19:34   ` Dan Rue
2018-03-13 21:47     ` Daniel Vacek
2018-03-14 10:54     ` Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 050/146] Documentation/sphinx: Fix Directive import error Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 051/146] loop: Fix lost writes caused by missing flag Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 052/146] virtio_ring: fix num_free handling in error case Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 053/146] KVM: s390: fix memory overwrites when not using SCA entries Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 054/146] arm64: mm: fix thinko in non-global page table attribute check Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 055/146] IB/core: Fix missing RDMA cgroups release in case of failure to register device Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 056/146] Revert "nvme: create slaves and holders entries for hidden controllers" Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 057/146] kbuild: Handle builtin dtb file names containing hyphens Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 058/146] dm bufio: avoid false-positive Wmaybe-uninitialized warning Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 059/146] IB/mlx5: Fix incorrect size of klms in the memory region Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 060/146] bcache: fix crashes in duplicate cache device register Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 061/146] bcache: dont attach backing with duplicate UUID Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 062/146] x86/MCE: Save microcode revision in machine check records Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 063/146] x86/MCE: Serialize sysfs changes Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 064/146] perf tools: Fix trigger class trigger_on() Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 065/146] x86/spectre_v2: Dont check microcode versions when running under hypervisors Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 066/146] ALSA: hda/realtek - Add support headset mode for DELL WYSE Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 067/146] ALSA: hda/realtek - Add headset mode support for Dell laptop Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 068/146] ALSA: hda/realtek: Limit mic boost on T480 Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 069/146] ALSA: hda/realtek - Fix dock line-out volume on Dell Precision 7520 Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 070/146] ALSA: hda/realtek - Make dock sound work on ThinkPad L570 Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 071/146] ALSA: seq: Dont allow resizing pool in use Greg Kroah-Hartman
2018-03-13 15:23 ` [PATCH 4.15 072/146] ALSA: seq: More protection for concurrent write and ioctl races Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 073/146] ALSA: hda - Fix a wrong FIXUP for alc289 on Dell machines Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 074/146] ALSA: hda: add dock and led support for HP EliteBook 820 G3 Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 075/146] ALSA: hda: add dock and led support for HP ProBook 640 G2 Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 076/146] scsi: qla2xxx: Fix NULL pointer crash due to probe failure Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 077/146] scsi: qla2xxx: Fix recursion while sending terminate exchange Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 078/146] dt-bindings: Document mti,mips-cpc binding Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 079/146] MIPS: CPC: Map registers using DT in mips_cpc_default_phys_base() Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 080/146] nospec: Kill array_index_nospec_mask_check() Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 081/146] nospec: Include <asm/barrier.h> dependency Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 082/146] x86/entry: Reduce the code footprint of the idtentry macro Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 083/146] x86/entry/64: Use xorl for faster register clearing Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 084/146] x86/mm: Remove stale comment about KMEMCHECK Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 085/146] x86/asm: Improve how GEN_*_SUFFIXED_RMWcc() specify clobbers Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 086/146] x86/IO-APIC: Avoid warning in 32-bit builds Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 087/146] x86/LDT: Avoid warning in 32-bit builds with older gcc Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 088/146] x86-64/realmode: Add instruction suffix Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 089/146] Revert "x86/retpoline: Simplify vmexit_fill_RSB()" Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 090/146] x86/speculation: Use IBRS if available before calling into firmware Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 091/146] x86/retpoline: Support retpoline builds with Clang Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 092/146] x86/speculation, objtool: Annotate indirect calls/jumps for objtool Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 093/146] x86/speculation: Move firmware_restrict_branch_speculation_*() from C to CPP Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 094/146] x86/paravirt, objtool: Annotate indirect calls Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 095/146] x86/boot, objtool: Annotate indirect jump in secondary_startup_64() Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 096/146] x86/mm/sme, objtool: Annotate indirect call in sme_encrypt_execute() Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 097/146] objtool: Use existing global variables for options Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 098/146] objtool: Add retpoline validation Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 099/146] objtool: Add module specific retpoline rules Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 100/146] objtool, retpolines: Integrate objtool with retpoline support more closely Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 101/146] objtool: Fix another switch table detection issue Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 102/146] objtool: Fix 32-bit build Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 103/146] x86/kprobes: Fix kernel crash when probing .entry_trampoline code Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 104/146] watchdog: hpwdt: SMBIOS check Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 105/146] watchdog: hpwdt: Check source of NMI Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 106/146] watchdog: hpwdt: fix unused variable warning Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 107/146] watchdog: hpwdt: Remove legacy NMI sourcing Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 108/146] netfilter: add back stackpointer size checks Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 109/146] netfilter: ipt_CLUSTERIP: fix a race condition of proc file creation Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 110/146] netfilter: xt_hashlimit: fix lock imbalance Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 111/146] netfilter: x_tables: fix missing timer initialization in xt_LED Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 112/146] netfilter: nat: cope with negative port range Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 113/146] netfilter: IDLETIMER: be syzkaller friendly Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 114/146] netfilter: ebtables: CONFIG_COMPAT: dont trust userland offsets Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 115/146] netfilter: bridge: ebt_among: add missing match size checks Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 116/146] netfilter: ipv6: fix use-after-free Write in nf_nat_ipv6_manip_pkt Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 117/146] netfilter: use skb_to_full_sk in ip6_route_me_harder Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 118/146] tpm_tis: Move ilb_base_addr to tpm_tis_data Greg Kroah-Hartman
2018-03-14  0:42   ` Shaikh, Azhar
2018-03-13 15:24 ` [PATCH 4.15 119/146] tpm: Keep CLKRUN enabled throughout the duration of transmit_cmd() Greg Kroah-Hartman
2018-03-14  0:42   ` Shaikh, Azhar [this message]
2018-03-13 15:24 ` [PATCH 4.15 120/146] tpm: delete the TPM_TIS_CLK_ENABLE flag Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 121/146] tpm: remove unused variables Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 122/146] tpm: only attempt to disable the LPC CLKRUN if is already enabled Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 123/146] x86/xen: Calculate __max_logical_packages on PV domains Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 124/146] scsi: qla2xxx: Fix system crash for Notify ack timeout handling Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 125/146] scsi: qla2xxx: Fix gpnid error processing Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 126/146] scsi: qla2xxx: Move session delete to driver work queue Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 127/146] scsi: qla2xxx: Skip IRQ affinity for Target QPairs Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 128/146] scsi: qla2xxx: Fix re-login for Nport Handle in use Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 129/146] scsi: qla2xxx: Retry switch command on time out Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 130/146] scsi: qla2xxx: Serialize GPNID for multiple RSCN Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 131/146] scsi: qla2xxx: Fix login state machine stuck at GPDB Greg Kroah-Hartman
2018-03-13 15:24 ` [PATCH 4.15 132/146] scsi: qla2xxx: Fix NPIV host cleanup in target mode Greg Kroah-Hartman
2018-03-13 15:25 ` [PATCH 4.15 133/146] scsi: qla2xxx: Relogin to target port on a cable swap Greg Kroah-Hartman
2018-03-13 15:25 ` [PATCH 4.15 134/146] scsi: qla2xxx: Fix Relogin being triggered too fast Greg Kroah-Hartman
2018-03-13 15:25 ` [PATCH 4.15 135/146] scsi: qla2xxx: Fix PRLI state check Greg Kroah-Hartman
2018-03-13 15:25 ` [PATCH 4.15 136/146] scsi: qla2xxx: Fix abort command deadlock due to spinlock Greg Kroah-Hartman
2018-03-13 15:25 ` [PATCH 4.15 137/146] scsi: qla2xxx: Replace fcport alloc with qla2x00_alloc_fcport Greg Kroah-Hartman
2018-03-13 15:25 ` [PATCH 4.15 138/146] scsi: qla2xxx: Fix scan state field for fcport Greg Kroah-Hartman
2018-03-13 15:25 ` [PATCH 4.15 139/146] scsi: qla2xxx: Clear loop id after delete Greg Kroah-Hartman
2018-03-13 15:25 ` [PATCH 4.15 140/146] scsi: qla2xxx: Defer processing of GS IOCB calls Greg Kroah-Hartman
2018-03-13 15:25 ` [PATCH 4.15 141/146] scsi: qla2xxx: Remove aborting ELS IOCB call issued as part of timeout Greg Kroah-Hartman
2018-03-13 15:25 ` [PATCH 4.15 142/146] scsi: qla2xxx: Fix system crash in qlt_plogi_ack_unref Greg Kroah-Hartman
2018-03-13 15:25 ` [PATCH 4.15 143/146] scsi: qla2xxx: Fix memory leak in dual/target mode Greg Kroah-Hartman
2018-03-13 15:25 ` [PATCH 4.15 144/146] NFS: Fix an incorrect type in struct nfs_direct_req Greg Kroah-Hartman
2018-03-13 15:25 ` [PATCH 4.15 145/146] pNFS: Prevent the layout header refcount going to zero in pnfs_roc() Greg Kroah-Hartman
2018-03-13 15:25 ` [PATCH 4.15 146/146] NFS: Fix unstable write completion Greg Kroah-Hartman
2018-03-13 20:19 ` [PATCH 4.15 000/146] 4.15.10-stable review kernelci.org bot
2018-03-13 22:28 ` Guenter Roeck
2018-03-14  7:50   ` Greg Kroah-Hartman
2018-03-14 10:20 ` Naresh Kamboju
2018-03-14 10:51   ` Greg Kroah-Hartman
2018-03-14 10:56 ` Greg Kroah-Hartman
2018-03-14 18:53   ` Naresh Kamboju
2018-03-15 10:19     ` Greg Kroah-Hartman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5FFFAD06ADE1CA4381B3F0F7C6AF58280769BC29@ORSMSX109.amr.corp.intel.com \
    --to=azhar.shaikh@intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jarkko.sakkinen@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®