All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Tomas Winkler <tomas.winkler@intel.com>,
	Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Subject: [PATCH 4.14 020/126] tpm: separate cmd_ready/go_idle from runtime_pm
Date: Tue, 18 Sep 2018 00:41:08 +0200	[thread overview]
Message-ID: <20180917211705.997120019@linuxfoundation.org> (raw)
In-Reply-To: <20180917211703.481236999@linuxfoundation.org>

4.14-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Tomas Winkler <tomas.winkler@intel.com>

commit 627448e85c766587f6fdde1ea3886d6615081c77 upstream.

Fix tpm ptt initialization error:
tpm tpm0: A TPM error (378) occurred get tpm pcr allocation.

We cannot use go_idle cmd_ready commands via runtime_pm handles
as with the introduction of localities this is no longer an optional
feature, while runtime pm can be not enabled.
Though cmd_ready/go_idle provides a power saving, it's also a part of
TPM2 protocol and should be called explicitly.
This patch exposes cmd_read/go_idle via tpm class ops and removes
runtime pm support as it is not used by any driver.

When calling from nested context always use both flags:
TPM_TRANSMIT_UNLOCKED and TPM_TRANSMIT_RAW. Both are needed to resolve
tpm spaces and locality request recursive calls to tpm_transmit().
TPM_TRANSMIT_RAW should never be used standalone as it will fail
on double locking. While TPM_TRANSMIT_UNLOCKED standalone should be
called from non-recursive locked contexts.

New wrappers are added tpm_cmd_ready() and tpm_go_idle() to
streamline tpm_try_transmit code.

tpm_crb no longer needs own power saving functions and can drop using
tpm_pm_suspend/resume.

This patch cannot be really separated from the locality fix.
Fixes: 888d867df441 (tpm: cmd_ready command can be issued only after granting locality)

Cc: stable@vger.kernel.org
Fixes: 888d867df441 (tpm: cmd_ready command can be issued only after granting locality)
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Tested-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Reviewed-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 |   50 +++++++++++++++----
 drivers/char/tpm/tpm.h           |   12 +++-
 drivers/char/tpm/tpm2-space.c    |   16 +++---
 drivers/char/tpm/tpm_crb.c       |  101 ++++++++++-----------------------------
 include/linux/tpm.h              |    2 
 5 files changed, 90 insertions(+), 91 deletions(-)

--- a/drivers/char/tpm/tpm-interface.c
+++ b/drivers/char/tpm/tpm-interface.c
@@ -369,10 +369,13 @@ err_len:
 	return -EINVAL;
 }
 
-static int tpm_request_locality(struct tpm_chip *chip)
+static int tpm_request_locality(struct tpm_chip *chip, unsigned int flags)
 {
 	int rc;
 
+	if (flags & TPM_TRANSMIT_RAW)
+		return 0;
+
 	if (!chip->ops->request_locality)
 		return 0;
 
@@ -385,10 +388,13 @@ static int tpm_request_locality(struct t
 	return 0;
 }
 
-static void tpm_relinquish_locality(struct tpm_chip *chip)
+static void tpm_relinquish_locality(struct tpm_chip *chip, unsigned int flags)
 {
 	int rc;
 
+	if (flags & TPM_TRANSMIT_RAW)
+		return;
+
 	if (!chip->ops->relinquish_locality)
 		return;
 
@@ -399,6 +405,28 @@ static void tpm_relinquish_locality(stru
 	chip->locality = -1;
 }
 
+static int tpm_cmd_ready(struct tpm_chip *chip, unsigned int flags)
+{
+	if (flags & TPM_TRANSMIT_RAW)
+		return 0;
+
+	if (!chip->ops->cmd_ready)
+		return 0;
+
+	return chip->ops->cmd_ready(chip);
+}
+
+static int tpm_go_idle(struct tpm_chip *chip, unsigned int flags)
+{
+	if (flags & TPM_TRANSMIT_RAW)
+		return 0;
+
+	if (!chip->ops->go_idle)
+		return 0;
+
+	return chip->ops->go_idle(chip);
+}
+
 static ssize_t tpm_try_transmit(struct tpm_chip *chip,
 				struct tpm_space *space,
 				u8 *buf, size_t bufsiz,
@@ -449,14 +477,15 @@ static ssize_t tpm_try_transmit(struct t
 	/* Store the decision as chip->locality will be changed. */
 	need_locality = chip->locality == -1;
 
-	if (!(flags & TPM_TRANSMIT_RAW) && need_locality) {
-		rc = tpm_request_locality(chip);
+	if (need_locality) {
+		rc = tpm_request_locality(chip, flags);
 		if (rc < 0)
 			goto out_no_locality;
 	}
 
-	if (chip->dev.parent)
-		pm_runtime_get_sync(chip->dev.parent);
+	rc = tpm_cmd_ready(chip, flags);
+	if (rc)
+		goto out;
 
 	rc = tpm2_prepare_space(chip, space, ordinal, buf);
 	if (rc)
@@ -516,13 +545,16 @@ out_recv:
 	}
 
 	rc = tpm2_commit_space(chip, space, ordinal, buf, &len);
+	if (rc)
+		dev_err(&chip->dev, "tpm2_commit_space: error %d\n", rc);
 
 out:
-	if (chip->dev.parent)
-		pm_runtime_put_sync(chip->dev.parent);
+	rc = tpm_go_idle(chip, flags);
+	if (rc)
+		goto out;
 
 	if (need_locality)
-		tpm_relinquish_locality(chip);
+		tpm_relinquish_locality(chip, flags);
 
 out_no_locality:
 	if (chip->ops->clk_enable != NULL)
--- a/drivers/char/tpm/tpm.h
+++ b/drivers/char/tpm/tpm.h
@@ -511,9 +511,17 @@ extern const struct file_operations tpm_
 extern const struct file_operations tpmrm_fops;
 extern struct idr dev_nums_idr;
 
+/**
+ * enum tpm_transmit_flags
+ *
+ * @TPM_TRANSMIT_UNLOCKED: used to lock sequence of tpm_transmit calls.
+ * @TPM_TRANSMIT_RAW: prevent recursive calls into setup steps
+ *                    (go idle, locality,..). Always use with UNLOCKED
+ *                    as it will fail on double locking.
+ */
 enum tpm_transmit_flags {
-	TPM_TRANSMIT_UNLOCKED	= BIT(0),
-	TPM_TRANSMIT_RAW	= BIT(1),
+	TPM_TRANSMIT_UNLOCKED = BIT(0),
+	TPM_TRANSMIT_RAW      = BIT(1),
 };
 
 ssize_t tpm_transmit(struct tpm_chip *chip, struct tpm_space *space,
--- a/drivers/char/tpm/tpm2-space.c
+++ b/drivers/char/tpm/tpm2-space.c
@@ -39,7 +39,8 @@ static void tpm2_flush_sessions(struct t
 	for (i = 0; i < ARRAY_SIZE(space->session_tbl); i++) {
 		if (space->session_tbl[i])
 			tpm2_flush_context_cmd(chip, space->session_tbl[i],
-					       TPM_TRANSMIT_UNLOCKED);
+					       TPM_TRANSMIT_UNLOCKED |
+					       TPM_TRANSMIT_RAW);
 	}
 }
 
@@ -84,7 +85,7 @@ static int tpm2_load_context(struct tpm_
 	tpm_buf_append(&tbuf, &buf[*offset], body_size);
 
 	rc = tpm_transmit_cmd(chip, NULL, tbuf.data, PAGE_SIZE, 4,
-			      TPM_TRANSMIT_UNLOCKED, NULL);
+			      TPM_TRANSMIT_UNLOCKED | TPM_TRANSMIT_RAW, NULL);
 	if (rc < 0) {
 		dev_warn(&chip->dev, "%s: failed with a system error %d\n",
 			 __func__, rc);
@@ -133,7 +134,7 @@ static int tpm2_save_context(struct tpm_
 	tpm_buf_append_u32(&tbuf, handle);
 
 	rc = tpm_transmit_cmd(chip, NULL, tbuf.data, PAGE_SIZE, 0,
-			      TPM_TRANSMIT_UNLOCKED, NULL);
+			      TPM_TRANSMIT_UNLOCKED | TPM_TRANSMIT_RAW, NULL);
 	if (rc < 0) {
 		dev_warn(&chip->dev, "%s: failed with a system error %d\n",
 			 __func__, rc);
@@ -170,7 +171,8 @@ static void tpm2_flush_space(struct tpm_
 	for (i = 0; i < ARRAY_SIZE(space->context_tbl); i++)
 		if (space->context_tbl[i] && ~space->context_tbl[i])
 			tpm2_flush_context_cmd(chip, space->context_tbl[i],
-					       TPM_TRANSMIT_UNLOCKED);
+					       TPM_TRANSMIT_UNLOCKED |
+					       TPM_TRANSMIT_RAW);
 
 	tpm2_flush_sessions(chip, space);
 }
@@ -377,7 +379,8 @@ static int tpm2_map_response_header(stru
 
 	return 0;
 out_no_slots:
-	tpm2_flush_context_cmd(chip, phandle, TPM_TRANSMIT_UNLOCKED);
+	tpm2_flush_context_cmd(chip, phandle,
+			       TPM_TRANSMIT_UNLOCKED | TPM_TRANSMIT_RAW);
 	dev_warn(&chip->dev, "%s: out of slots for 0x%08X\n", __func__,
 		 phandle);
 	return -ENOMEM;
@@ -465,7 +468,8 @@ static int tpm2_save_space(struct tpm_ch
 			return rc;
 
 		tpm2_flush_context_cmd(chip, space->context_tbl[i],
-				       TPM_TRANSMIT_UNLOCKED);
+				       TPM_TRANSMIT_UNLOCKED |
+				       TPM_TRANSMIT_RAW);
 		space->context_tbl[i] = ~0;
 	}
 
--- a/drivers/char/tpm/tpm_crb.c
+++ b/drivers/char/tpm/tpm_crb.c
@@ -137,7 +137,7 @@ static bool crb_wait_for_reg_32(u32 __io
 }
 
 /**
- * crb_go_idle - request tpm crb device to go the idle state
+ * __crb_go_idle - request tpm crb device to go the idle state
  *
  * @dev:  crb device
  * @priv: crb private data
@@ -151,7 +151,7 @@ static bool crb_wait_for_reg_32(u32 __io
  *
  * Return: 0 always
  */
-static int crb_go_idle(struct device *dev, struct crb_priv *priv)
+static int __crb_go_idle(struct device *dev, struct crb_priv *priv)
 {
 	if ((priv->flags & CRB_FL_ACPI_START) ||
 	    (priv->flags & CRB_FL_CRB_SMC_START))
@@ -166,11 +166,20 @@ static int crb_go_idle(struct device *de
 		dev_warn(dev, "goIdle timed out\n");
 		return -ETIME;
 	}
+
 	return 0;
 }
 
+static int crb_go_idle(struct tpm_chip *chip)
+{
+	struct device *dev = &chip->dev;
+	struct crb_priv *priv = dev_get_drvdata(dev);
+
+	return __crb_go_idle(dev, priv);
+}
+
 /**
- * crb_cmd_ready - request tpm crb device to enter ready state
+ * __crb_cmd_ready - request tpm crb device to enter ready state
  *
  * @dev:  crb device
  * @priv: crb private data
@@ -183,7 +192,7 @@ static int crb_go_idle(struct device *de
  *
  * Return: 0 on success -ETIME on timeout;
  */
-static int crb_cmd_ready(struct device *dev, struct crb_priv *priv)
+static int __crb_cmd_ready(struct device *dev, struct crb_priv *priv)
 {
 	if ((priv->flags & CRB_FL_ACPI_START) ||
 	    (priv->flags & CRB_FL_CRB_SMC_START))
@@ -201,6 +210,14 @@ static int crb_cmd_ready(struct device *
 	return 0;
 }
 
+static int crb_cmd_ready(struct tpm_chip *chip)
+{
+	struct device *dev = &chip->dev;
+	struct crb_priv *priv = dev_get_drvdata(dev);
+
+	return __crb_cmd_ready(dev, priv);
+}
+
 static int __crb_request_locality(struct device *dev,
 				  struct crb_priv *priv, int loc)
 {
@@ -393,6 +410,8 @@ static const struct tpm_class_ops tpm_cr
 	.send = crb_send,
 	.cancel = crb_cancel,
 	.req_canceled = crb_req_canceled,
+	.go_idle  = crb_go_idle,
+	.cmd_ready = crb_cmd_ready,
 	.request_locality = crb_request_locality,
 	.relinquish_locality = crb_relinquish_locality,
 	.req_complete_mask = CRB_DRV_STS_COMPLETE,
@@ -508,7 +527,7 @@ static int crb_map_io(struct acpi_device
 	 * PTT HW bug w/a: wake up the device to access
 	 * possibly not retained registers.
 	 */
-	ret = crb_cmd_ready(dev, priv);
+	ret = __crb_cmd_ready(dev, priv);
 	if (ret)
 		return ret;
 
@@ -553,7 +572,7 @@ out:
 	if (!ret)
 		priv->cmd_size = cmd_size;
 
-	crb_go_idle(dev, priv);
+	__crb_go_idle(dev, priv);
 
 	__crb_relinquish_locality(dev, priv, 0);
 
@@ -624,32 +643,7 @@ static int crb_acpi_add(struct acpi_devi
 	chip->acpi_dev_handle = device->handle;
 	chip->flags = TPM_CHIP_FLAG_TPM2;
 
-	rc = __crb_request_locality(dev, priv, 0);
-	if (rc)
-		return rc;
-
-	rc  = crb_cmd_ready(dev, priv);
-	if (rc)
-		goto out;
-
-	pm_runtime_get_noresume(dev);
-	pm_runtime_set_active(dev);
-	pm_runtime_enable(dev);
-
-	rc = tpm_chip_register(chip);
-	if (rc) {
-		crb_go_idle(dev, priv);
-		pm_runtime_put_noidle(dev);
-		pm_runtime_disable(dev);
-		goto out;
-	}
-
-	pm_runtime_put_sync(dev);
-
-out:
-	__crb_relinquish_locality(dev, priv, 0);
-
-	return rc;
+	return tpm_chip_register(chip);
 }
 
 static int crb_acpi_remove(struct acpi_device *device)
@@ -659,52 +653,11 @@ static int crb_acpi_remove(struct acpi_d
 
 	tpm_chip_unregister(chip);
 
-	pm_runtime_disable(dev);
-
 	return 0;
 }
 
-static int __maybe_unused crb_pm_runtime_suspend(struct device *dev)
-{
-	struct tpm_chip *chip = dev_get_drvdata(dev);
-	struct crb_priv *priv = dev_get_drvdata(&chip->dev);
-
-	return crb_go_idle(dev, priv);
-}
-
-static int __maybe_unused crb_pm_runtime_resume(struct device *dev)
-{
-	struct tpm_chip *chip = dev_get_drvdata(dev);
-	struct crb_priv *priv = dev_get_drvdata(&chip->dev);
-
-	return crb_cmd_ready(dev, priv);
-}
-
-static int __maybe_unused crb_pm_suspend(struct device *dev)
-{
-	int ret;
-
-	ret = tpm_pm_suspend(dev);
-	if (ret)
-		return ret;
-
-	return crb_pm_runtime_suspend(dev);
-}
-
-static int __maybe_unused crb_pm_resume(struct device *dev)
-{
-	int ret;
-
-	ret = crb_pm_runtime_resume(dev);
-	if (ret)
-		return ret;
-
-	return tpm_pm_resume(dev);
-}
-
 static const struct dev_pm_ops crb_pm = {
-	SET_SYSTEM_SLEEP_PM_OPS(crb_pm_suspend, crb_pm_resume)
-	SET_RUNTIME_PM_OPS(crb_pm_runtime_suspend, crb_pm_runtime_resume, NULL)
+	SET_SYSTEM_SLEEP_PM_OPS(tpm_pm_suspend, tpm_pm_resume)
 };
 
 static const struct acpi_device_id crb_device_ids[] = {
--- a/include/linux/tpm.h
+++ b/include/linux/tpm.h
@@ -48,6 +48,8 @@ struct tpm_class_ops {
 	u8 (*status) (struct tpm_chip *chip);
 	bool (*update_timeouts)(struct tpm_chip *chip,
 				unsigned long *timeout_cap);
+	int (*go_idle)(struct tpm_chip *chip);
+	int (*cmd_ready)(struct tpm_chip *chip);
 	int (*request_locality)(struct tpm_chip *chip, int loc);
 	int (*relinquish_locality)(struct tpm_chip *chip, int loc);
 	void (*clk_enable)(struct tpm_chip *chip, bool value);



  parent reply	other threads:[~2018-09-17 23:00 UTC|newest]

Thread overview: 137+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-17 22:40 [PATCH 4.14 000/126] 4.14.71-stable review Greg Kroah-Hartman
2018-09-17 22:40 ` [PATCH 4.14 001/126] i2c: xiic: Make the start and the byte count write atomic Greg Kroah-Hartman
2018-09-17 22:40 ` [PATCH 4.14 002/126] i2c: i801: fix DNVs SMBCTRL register offset Greg Kroah-Hartman
2018-09-17 22:40 ` [PATCH 4.14 003/126] scsi: lpfc: Correct MDS diag and nvmet configuration Greg Kroah-Hartman
2018-09-17 22:40 ` [PATCH 4.14 004/126] nbd: dont allow invalid blocksize settings Greg Kroah-Hartman
2018-09-17 22:40 ` [PATCH 4.14 005/126] block: bfq: swap puts in bfqg_and_blkg_put Greg Kroah-Hartman
2018-09-17 22:40 ` [PATCH 4.14 006/126] android: binder: fix the race mmap and alloc_new_buf_locked Greg Kroah-Hartman
2018-09-17 22:40 ` [PATCH 4.14 007/126] MIPS: VDSO: Match data page cache colouring when D$ aliases Greg Kroah-Hartman
2018-09-17 22:40 ` [PATCH 4.14 008/126] SMB3: Backup intent flag missing for directory opens with backupuid mounts Greg Kroah-Hartman
2018-09-17 22:40 ` [PATCH 4.14 009/126] smb3: check for and properly advertise directory lease support Greg Kroah-Hartman
2018-09-17 22:40 ` [PATCH 4.14 010/126] Btrfs: fix data corruption when deduplicating between different files Greg Kroah-Hartman
2018-09-17 22:40 ` [PATCH 4.14 011/126] KVM: s390: vsie: copy wrapping keys to right place Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 012/126] KVM: VMX: Do not allow reexecute_instruction() when skipping MMIO instr Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 013/126] ALSA: hda - Fix cancel_work_sync() stall from jackpoll work Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 014/126] cpu/hotplug: Adjust misplaced smb() in cpuhp_thread_fun() Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 015/126] cpu/hotplug: Prevent state corruption on error rollback Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 016/126] x86/microcode: Make sure boot_cpu_data.microcode is up-to-date Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 017/126] x86/microcode: Update the new microcode revision unconditionally Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 018/126] switchtec: Fix Spectre v1 vulnerability Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 019/126] crypto: aes-generic - fix aes-generic regression on powerpc Greg Kroah-Hartman
2018-09-17 22:41 ` Greg Kroah-Hartman [this message]
2018-09-17 22:41 ` [PATCH 4.14 021/126] ARC: [plat-axs*]: Enable SWAP Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 022/126] misc: mic: SCIF Fix scif_get_new_port() error handling Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 023/126] ethtool: Remove trailing semicolon for static inline Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 024/126] i2c: aspeed: Add an explicit type casting for *get_clk_reg_val Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 025/126] Bluetooth: h5: Fix missing dependency on BT_HCIUART_SERDEV Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 026/126] gpio: tegra: Move driver registration to subsys_init level Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 027/126] powerpc/powernv: Fix concurrency issue with npu->mmio_atsd_usage Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 028/126] selftests/bpf: fix a typo in map in map test Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 029/126] media: davinci: vpif_display: Mix memory leak on probe error path Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 030/126] media: dw2102: Fix memleak on sequence of probes Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 031/126] net: phy: Fix the register offsets in Broadcom iProc mdio mux driver Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 032/126] blk-mq: fix updating tags depth Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 033/126] scsi: target: fix __transport_register_session locking Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 034/126] md/raid5: fix data corruption of replacements after originals dropped Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 035/126] timers: Clear timer_base::must_forward_clk with timer_base::lock held Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 036/126] media: camss: csid: Configure data type and decode format properly Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 037/126] gpu: ipu-v3: default to id 0 on missing OF alias Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 038/126] misc: ti-st: Fix memory leak in the error path of probe() Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 039/126] uio: potential double frees if __uio_register_device() fails Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 040/126] firmware: vpd: Fix section enabled flag on vpd_section_destroy Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 041/126] Drivers: hv: vmbus: Cleanup synic memory free path Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 042/126] tty: rocket: Fix possible buffer overwrite on register_PCI Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 043/126] f2fs: fix to active page in lru list for read path Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 044/126] f2fs: do not set free of current section Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 045/126] f2fs: fix defined but not used build warnings Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 046/126] perf tools: Allow overriding MAX_NR_CPUS at compile time Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 047/126] NFSv4.0 fix client reference leak in callback Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 048/126] perf c2c report: Fix crash for empty browser Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 049/126] perf evlist: Fix error out while applying initial delay and LBR Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 050/126] macintosh/via-pmu: Add missing mmio accessors Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 051/126] ath9k: report tx status on EOSP Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 052/126] ath9k_hw: fix channel maximum power level test Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 053/126] ath10k: prevent active scans on potential unusable channels Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 054/126] wlcore: Set rx_status boottime_ns field on rx Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 055/126] rpmsg: core: add support to power domains for devices Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 056/126] MIPS: Fix ISA virt/bus conversion for non-zero PHYS_OFFSET Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 057/126] ata: libahci: Allow reconfigure of DEVSLP register Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 058/126] ata: libahci: Correct setting " Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 059/126] scsi: 3ware: fix return 0 on the error path of probe Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 060/126] tools/testing/nvdimm: kaddr and pfn can be NULL to ->direct_access() Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 061/126] ath10k: disable bundle mgmt tx completion event support Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 062/126] Bluetooth: hidp: Fix handling of strncpy for hid->name information Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 063/126] x86/mm: Remove in_nmi() warning from vmalloc_fault() Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 064/126] pinctrl: imx: off by one in imx_pinconf_group_dbg_show() Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 065/126] gpio: ml-ioh: Fix buffer underwrite on probe error path Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 066/126] pinctrl/amd: only handle irq if it is pending and unmasked Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 067/126] net: mvneta: fix mtu change on port without link Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 068/126] f2fs: try grabbing node page lock aggressively in sync scenario Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 069/126] pktcdvd: Fix possible Spectre-v1 for pkt_devs Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 070/126] f2fs: fix to skip GC if type in SSA and SIT is inconsistent Greg Kroah-Hartman
2018-09-17 22:41 ` [PATCH 4.14 071/126] tpm_tis_spi: Pass the SPI IRQ down to the driver Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 072/126] tpm/tpm_i2c_infineon: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT) Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 073/126] f2fs: fix to do sanity check with reserved blkaddr of inline inode Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 074/126] MIPS: Octeon: add missing of_node_put() Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 075/126] MIPS: generic: fix " Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 076/126] net: dcb: For wild-card lookups, use priority -1, not 0 Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 077/126] dm cache: only allow a single io_mode cache feature to be requested Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 078/126] Input: atmel_mxt_ts - only use first T9 instance Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 079/126] media: s5p-mfc: Fix buffer look up in s5p_mfc_handle_frame_{new, copy_time} functions Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 080/126] partitions/aix: append null character to print data from disk Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 081/126] partitions/aix: fix usage of uninitialized lv_info and lvname structures Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 082/126] media: helene: fix xtal frequency setting at power on Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 083/126] f2fs: fix to wait on page writeback before updating page Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 084/126] f2fs: Fix uninitialized return in f2fs_ioc_shutdown() Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 085/126] iommu/ipmmu-vmsa: Fix allocation in atomic context Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 086/126] mfd: ti_am335x_tscadc: Fix struct clk memory leak Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 087/126] f2fs: fix to do sanity check with {sit,nat}_ver_bitmap_bytesize Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 088/126] NFSv4.1: Fix a potential layoutget/layoutrecall deadlock Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 089/126] MIPS: WARN_ON invalid DMA cache maintenance, not BUG_ON Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 090/126] RDMA/cma: Do not ignore net namespace for unbound cm_id Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 091/126] drm/i915: set DP Main Stream Attribute for color range on DDI platforms Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 092/126] inet: frags: change inet_frags_init_net() return value Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 093/126] inet: frags: add a pointer to struct netns_frags Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 094/126] inet: frags: refactor ipfrag_init() Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 095/126] inet: frags: Convert timers to use timer_setup() Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 096/126] inet: frags: refactor ipv6_frag_init() Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 097/126] inet: frags: refactor lowpan_net_frag_init() Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 098/126] ipv6: export ip6 fragments sysctl to unprivileged users Greg Kroah-Hartman
2018-09-17 22:42 ` Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 099/126] rhashtable: add schedule points Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 100/126] inet: frags: use rhashtables for reassembly units Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 101/126] inet: frags: remove some helpers Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 102/126] inet: frags: get rif of inet_frag_evicting() Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 103/126] inet: frags: remove inet_frag_maybe_warn_overflow() Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 104/126] inet: frags: break the 2GB limit for frags storage Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 105/126] inet: frags: do not clone skb in ip_expire() Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 106/126] ipv6: frags: rewrite ip6_expire_frag_queue() Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 107/126] rhashtable: reorganize struct rhashtable layout Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 108/126] inet: frags: reorganize struct netns_frags Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 109/126] inet: frags: get rid of ipfrag_skb_cb/FRAG_CB Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 110/126] inet: frags: fix ip6frag_low_thresh boundary Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 111/126] ip: discard IPv4 datagrams with overlapping segments Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 112/126] net: speed up skb_rbtree_purge() Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 113/126] net: modify skb_rbtree_purge to return the truesize of all purged skbs Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 114/126] ipv6: defrag: drop non-last frags smaller than min mtu Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 115/126] net: pskb_trim_rcsum() and CHECKSUM_COMPLETE are friends Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 116/126] net: add rb_to_skb() and other rb tree helpers Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 117/126] net: sk_buff rbnode reorg Greg Kroah-Hartman
2018-10-04 20:13   ` Mitch Harder
2018-11-29 10:33     ` Greg Kroah-Hartman
2018-11-29 15:07       ` Mitch Harder
2018-09-17 22:42 ` [PATCH 4.14 118/126] ipv4: frags: precedence bug in ip_expire() Greg Kroah-Hartman
2018-09-17 22:42 ` Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 119/126] ip: add helpers to process in-order fragments faster Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 120/126] ip: process in-order fragments efficiently Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 121/126] ip: frags: fix crash in ip_do_fragment() Greg Kroah-Hartman
2018-09-17 22:42 ` Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 122/126] mtd: ubi: wl: Fix error return code in ubi_wl_init() Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 123/126] tun: fix use after free for ptr_ring Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 124/126] tuntap: fix use after free during release Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 125/126] autofs: fix autofs_sbi() does not check super block type Greg Kroah-Hartman
2018-09-17 22:42 ` [PATCH 4.14 126/126] mm: get rid of vmacache_flush_all() entirely Greg Kroah-Hartman
2018-09-17 23:59 ` [PATCH 4.14 000/126] 4.14.71-stable review Nathan Chancellor
2018-09-18  7:44   ` Greg Kroah-Hartman
2018-09-18 16:20 ` Guenter Roeck
2018-09-18 16:53 ` Naresh Kamboju

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=20180917211705.997120019@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=jarkko.sakkinen@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=tomas.winkler@intel.com \
    /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 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.