stable.vger.kernel.org archive mirror
 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, Kevin Tian <kevin.tian@intel.com>,
	Zhenyu Wang <zhenyuw@linux.intel.com>,
	Weinan Li <weinan.z.li@intel.com>,
	Changbin Du <changbin.du@intel.com>
Subject: [PATCH 4.16 194/196] drm/i915/gvt: init mmio by lri command in vgpu inhibit context
Date: Sun, 22 Apr 2018 15:53:34 +0200	[thread overview]
Message-ID: <20180422135114.320584004@linuxfoundation.org> (raw)
In-Reply-To: <20180422135104.278511750@linuxfoundation.org>

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

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

From: Weinan Li <weinan.z.li@intel.com>

commit cd7e61b93d068a80bfe6cb55bf00f17332d831a1 upstream.

There is one issue relates to Coarse Power Gating(CPG) on KBL NUC in GVT-g,
vgpu can't get the correct default context by updating the registers before
inhibit context submission. It always get back the hardware default value
unless the inhibit context submission happened before the 1st time
forcewake put. With this wrong default context, vgpu will run with
incorrect state and meet unknown issues.

The solution is initialize these mmios by adding lri command in ring buffer
of the inhibit context, then gpu hardware has no chance to go down RC6 when
lri commands are right being executed, and then vgpu can get correct
default context for further use.

v3:
- fix code fault, use 'for' to loop through mmio render list(Zhenyu)

v4:
- save the count of engine mmio need to be restored for inhibit context and
  refine some comments. (Kevin)

v5:
- code rebase

Cc: Kevin Tian <kevin.tian@intel.com>
Cc: Zhenyu Wang <zhenyuw@linux.intel.com>
Signed-off-by: Weinan Li <weinan.z.li@intel.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Signed-off-by: Changbin Du <changbin.du@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/gpu/drm/i915/gvt/gvt.h          |    5 
 drivers/gpu/drm/i915/gvt/mmio_context.c |  210 +++++++++++++++++++++++++++++---
 drivers/gpu/drm/i915/gvt/mmio_context.h |    5 
 drivers/gpu/drm/i915/gvt/scheduler.c    |    5 
 4 files changed, 205 insertions(+), 20 deletions(-)

--- a/drivers/gpu/drm/i915/gvt/gvt.h
+++ b/drivers/gpu/drm/i915/gvt/gvt.h
@@ -308,7 +308,10 @@ struct intel_gvt {
 	wait_queue_head_t service_thread_wq;
 	unsigned long service_request;
 
-	struct engine_mmio *engine_mmio_list;
+	struct {
+		struct engine_mmio *mmio;
+		int ctx_mmio_count[I915_NUM_ENGINES];
+	} engine_mmio_list;
 
 	struct dentry *debugfs_root;
 };
--- a/drivers/gpu/drm/i915/gvt/mmio_context.c
+++ b/drivers/gpu/drm/i915/gvt/mmio_context.c
@@ -50,6 +50,8 @@
 #define RING_GFX_MODE(base)	_MMIO((base) + 0x29c)
 #define VF_GUARDBAND		_MMIO(0x83a4)
 
+#define GEN9_MOCS_SIZE		64
+
 /* Raw offset is appened to each line for convenience. */
 static struct engine_mmio gen8_engine_mmio_list[] __cacheline_aligned = {
 	{RCS, GFX_MODE_GEN7, 0xffff, false}, /* 0x229c */
@@ -152,8 +154,8 @@ static struct engine_mmio gen9_engine_mm
 
 static struct {
 	bool initialized;
-	u32 control_table[I915_NUM_ENGINES][64];
-	u32 l3cc_table[32];
+	u32 control_table[I915_NUM_ENGINES][GEN9_MOCS_SIZE];
+	u32 l3cc_table[GEN9_MOCS_SIZE / 2];
 } gen9_render_mocs;
 
 static void load_render_mocs(struct drm_i915_private *dev_priv)
@@ -170,7 +172,7 @@ static void load_render_mocs(struct drm_
 
 	for (ring_id = 0; ring_id < ARRAY_SIZE(regs); ring_id++) {
 		offset.reg = regs[ring_id];
-		for (i = 0; i < 64; i++) {
+		for (i = 0; i < GEN9_MOCS_SIZE; i++) {
 			gen9_render_mocs.control_table[ring_id][i] =
 				I915_READ_FW(offset);
 			offset.reg += 4;
@@ -178,7 +180,7 @@ static void load_render_mocs(struct drm_
 	}
 
 	offset.reg = 0xb020;
-	for (i = 0; i < 32; i++) {
+	for (i = 0; i < GEN9_MOCS_SIZE / 2; i++) {
 		gen9_render_mocs.l3cc_table[i] =
 			I915_READ_FW(offset);
 		offset.reg += 4;
@@ -186,6 +188,153 @@ static void load_render_mocs(struct drm_
 	gen9_render_mocs.initialized = true;
 }
 
+static int
+restore_context_mmio_for_inhibit(struct intel_vgpu *vgpu,
+				 struct drm_i915_gem_request *req)
+{
+	u32 *cs;
+	int ret;
+	struct engine_mmio *mmio;
+	struct intel_gvt *gvt = vgpu->gvt;
+	int ring_id = req->engine->id;
+	int count = gvt->engine_mmio_list.ctx_mmio_count[ring_id];
+
+	if (count == 0)
+		return 0;
+
+	ret = req->engine->emit_flush(req, EMIT_BARRIER);
+	if (ret)
+		return ret;
+
+	cs = intel_ring_begin(req, count * 2 + 2);
+	if (IS_ERR(cs))
+		return PTR_ERR(cs);
+
+	*cs++ = MI_LOAD_REGISTER_IMM(count);
+	for (mmio = gvt->engine_mmio_list.mmio;
+	     i915_mmio_reg_valid(mmio->reg); mmio++) {
+		if (mmio->ring_id != ring_id ||
+		    !mmio->in_context)
+			continue;
+
+		*cs++ = i915_mmio_reg_offset(mmio->reg);
+		*cs++ = vgpu_vreg_t(vgpu, mmio->reg) |
+				(mmio->mask << 16);
+		gvt_dbg_core("add lri reg pair 0x%x:0x%x in inhibit ctx, vgpu:%d, rind_id:%d\n",
+			      *(cs-2), *(cs-1), vgpu->id, ring_id);
+	}
+
+	*cs++ = MI_NOOP;
+	intel_ring_advance(req, cs);
+
+	ret = req->engine->emit_flush(req, EMIT_BARRIER);
+	if (ret)
+		return ret;
+
+	return 0;
+}
+
+static int
+restore_render_mocs_control_for_inhibit(struct intel_vgpu *vgpu,
+					struct drm_i915_gem_request *req)
+{
+	unsigned int index;
+	u32 *cs;
+
+	cs = intel_ring_begin(req, 2 * GEN9_MOCS_SIZE + 2);
+	if (IS_ERR(cs))
+		return PTR_ERR(cs);
+
+	*cs++ = MI_LOAD_REGISTER_IMM(GEN9_MOCS_SIZE);
+
+	for (index = 0; index < GEN9_MOCS_SIZE; index++) {
+		*cs++ = i915_mmio_reg_offset(GEN9_GFX_MOCS(index));
+		*cs++ = vgpu_vreg_t(vgpu, GEN9_GFX_MOCS(index));
+		gvt_dbg_core("add lri reg pair 0x%x:0x%x in inhibit ctx, vgpu:%d, rind_id:%d\n",
+			      *(cs-2), *(cs-1), vgpu->id, req->engine->id);
+
+	}
+
+	*cs++ = MI_NOOP;
+	intel_ring_advance(req, cs);
+
+	return 0;
+}
+
+static int
+restore_render_mocs_l3cc_for_inhibit(struct intel_vgpu *vgpu,
+				     struct drm_i915_gem_request *req)
+{
+	unsigned int index;
+	u32 *cs;
+
+	cs = intel_ring_begin(req, 2 * GEN9_MOCS_SIZE / 2 + 2);
+	if (IS_ERR(cs))
+		return PTR_ERR(cs);
+
+	*cs++ = MI_LOAD_REGISTER_IMM(GEN9_MOCS_SIZE / 2);
+
+	for (index = 0; index < GEN9_MOCS_SIZE / 2; index++) {
+		*cs++ = i915_mmio_reg_offset(GEN9_LNCFCMOCS(index));
+		*cs++ = vgpu_vreg_t(vgpu, GEN9_LNCFCMOCS(index));
+		gvt_dbg_core("add lri reg pair 0x%x:0x%x in inhibit ctx, vgpu:%d, rind_id:%d\n",
+			      *(cs-2), *(cs-1), vgpu->id, req->engine->id);
+
+	}
+
+	*cs++ = MI_NOOP;
+	intel_ring_advance(req, cs);
+
+	return 0;
+}
+
+/*
+ * Use lri command to initialize the mmio which is in context state image for
+ * inhibit context, it contains tracked engine mmio, render_mocs and
+ * render_mocs_l3cc.
+ */
+int intel_vgpu_restore_inhibit_context(struct intel_vgpu *vgpu,
+				       struct drm_i915_gem_request *req)
+{
+	int ret;
+	u32 *cs;
+
+	cs = intel_ring_begin(req, 2);
+	if (IS_ERR(cs))
+		return PTR_ERR(cs);
+
+	*cs++ = MI_ARB_ON_OFF | MI_ARB_DISABLE;
+	*cs++ = MI_NOOP;
+	intel_ring_advance(req, cs);
+
+	ret = restore_context_mmio_for_inhibit(vgpu, req);
+	if (ret)
+		goto out;
+
+	/* no MOCS register in context except render engine */
+	if (req->engine->id != RCS)
+		goto out;
+
+	ret = restore_render_mocs_control_for_inhibit(vgpu, req);
+	if (ret)
+		goto out;
+
+	ret = restore_render_mocs_l3cc_for_inhibit(vgpu, req);
+	if (ret)
+		goto out;
+
+out:
+	cs = intel_ring_begin(req, 2);
+	if (IS_ERR(cs))
+		return PTR_ERR(cs);
+
+	*cs++ = MI_ARB_ON_OFF | MI_ARB_ENABLE;
+	*cs++ = MI_NOOP;
+	intel_ring_advance(req, cs);
+
+	return ret;
+}
+
 static void handle_tlb_pending_event(struct intel_vgpu *vgpu, int ring_id)
 {
 	struct drm_i915_private *dev_priv = vgpu->gvt->dev_priv;
@@ -252,11 +401,14 @@ static void switch_mocs(struct intel_vgp
 	if (WARN_ON(ring_id >= ARRAY_SIZE(regs)))
 		return;
 
+	if (IS_KABYLAKE(dev_priv) && ring_id == RCS)
+		return;
+
 	if (!pre && !gen9_render_mocs.initialized)
 		load_render_mocs(dev_priv);
 
 	offset.reg = regs[ring_id];
-	for (i = 0; i < 64; i++) {
+	for (i = 0; i < GEN9_MOCS_SIZE; i++) {
 		if (pre)
 			old_v = vgpu_vreg_t(pre, offset);
 		else
@@ -274,7 +426,7 @@ static void switch_mocs(struct intel_vgp
 
 	if (ring_id == RCS) {
 		l3_offset.reg = 0xb020;
-		for (i = 0; i < 32; i++) {
+		for (i = 0; i < GEN9_MOCS_SIZE / 2; i++) {
 			if (pre)
 				old_v = vgpu_vreg_t(pre, l3_offset);
 			else
@@ -294,6 +446,16 @@ static void switch_mocs(struct intel_vgp
 
 #define CTX_CONTEXT_CONTROL_VAL	0x03
 
+bool is_inhibit_context(struct i915_gem_context *ctx, int ring_id)
+{
+	u32 *reg_state = ctx->engine[ring_id].lrc_reg_state;
+	u32 inhibit_mask =
+		_MASKED_BIT_ENABLE(CTX_CTRL_ENGINE_CTX_RESTORE_INHIBIT);
+
+	return inhibit_mask ==
+		(reg_state[CTX_CONTEXT_CONTROL_VAL] & inhibit_mask);
+}
+
 /* Switch ring mmio values (context). */
 static void switch_mmio(struct intel_vgpu *pre,
 			struct intel_vgpu *next,
@@ -301,9 +463,6 @@ static void switch_mmio(struct intel_vgp
 {
 	struct drm_i915_private *dev_priv;
 	struct intel_vgpu_submission *s;
-	u32 *reg_state, ctx_ctrl;
-	u32 inhibit_mask =
-		_MASKED_BIT_ENABLE(CTX_CTRL_ENGINE_CTX_RESTORE_INHIBIT);
 	struct engine_mmio *mmio;
 	u32 old_v, new_v;
 
@@ -311,10 +470,18 @@ static void switch_mmio(struct intel_vgp
 	if (IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv))
 		switch_mocs(pre, next, ring_id);
 
-	for (mmio = dev_priv->gvt->engine_mmio_list;
+	for (mmio = dev_priv->gvt->engine_mmio_list.mmio;
 	     i915_mmio_reg_valid(mmio->reg); mmio++) {
 		if (mmio->ring_id != ring_id)
 			continue;
+		/*
+		 * No need to do save or restore of the mmio which is in context
+		 * state image on kabylake, it's initialized by lri command and
+		 * save or restore with context together.
+		 */
+		if (IS_KABYLAKE(dev_priv) && mmio->in_context)
+			continue;
+
 		// save
 		if (pre) {
 			vgpu_vreg_t(pre, mmio->reg) = I915_READ_FW(mmio->reg);
@@ -328,16 +495,13 @@ static void switch_mmio(struct intel_vgp
 		// restore
 		if (next) {
 			s = &next->submission;
-			reg_state =
-				s->shadow_ctx->engine[ring_id].lrc_reg_state;
-			ctx_ctrl = reg_state[CTX_CONTEXT_CONTROL_VAL];
 			/*
-			 * if it is an inhibit context, load in_context mmio
-			 * into HW by mmio write. If it is not, skip this mmio
-			 * write.
+			 * No need to restore the mmio which is in context state
+			 * image if it's not inhibit context, it will restore
+			 * itself.
 			 */
 			if (mmio->in_context &&
-			    (ctx_ctrl & inhibit_mask) != inhibit_mask)
+			    !is_inhibit_context(s->shadow_ctx, ring_id))
 				continue;
 
 			if (mmio->mask)
@@ -408,8 +572,16 @@ void intel_gvt_switch_mmio(struct intel_
  */
 void intel_gvt_init_engine_mmio_context(struct intel_gvt *gvt)
 {
+	struct engine_mmio *mmio;
+
 	if (IS_SKYLAKE(gvt->dev_priv) || IS_KABYLAKE(gvt->dev_priv))
-		gvt->engine_mmio_list = gen9_engine_mmio_list;
+		gvt->engine_mmio_list.mmio = gen9_engine_mmio_list;
 	else
-		gvt->engine_mmio_list = gen8_engine_mmio_list;
+		gvt->engine_mmio_list.mmio = gen8_engine_mmio_list;
+
+	for (mmio = gvt->engine_mmio_list.mmio;
+	     i915_mmio_reg_valid(mmio->reg); mmio++) {
+		if (mmio->in_context)
+			gvt->engine_mmio_list.ctx_mmio_count[mmio->ring_id]++;
+	}
 }
--- a/drivers/gpu/drm/i915/gvt/mmio_context.h
+++ b/drivers/gpu/drm/i915/gvt/mmio_context.h
@@ -49,4 +49,9 @@ void intel_gvt_switch_mmio(struct intel_
 
 void intel_gvt_init_engine_mmio_context(struct intel_gvt *gvt);
 
+bool is_inhibit_context(struct i915_gem_context *ctx, int ring_id);
+
+int intel_vgpu_restore_inhibit_context(struct intel_vgpu *vgpu,
+				       struct drm_i915_gem_request *req);
+
 #endif
--- a/drivers/gpu/drm/i915/gvt/scheduler.c
+++ b/drivers/gpu/drm/i915/gvt/scheduler.c
@@ -275,6 +275,11 @@ static int copy_workload_to_ring_buffer(
 	struct intel_vgpu *vgpu = workload->vgpu;
 	void *shadow_ring_buffer_va;
 	u32 *cs;
+	struct drm_i915_gem_request *req = workload->req;
+
+	if (IS_KABYLAKE(req->i915) &&
+	    is_inhibit_context(req->ctx, req->engine->id))
+		intel_vgpu_restore_inhibit_context(vgpu, req);
 
 	/* allocate shadow ring buffer */
 	cs = intel_ring_begin(workload->req, workload->rb_len / sizeof(u32));

  parent reply	other threads:[~2018-04-22 13:53 UTC|newest]

Thread overview: 199+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-22 13:50 [PATCH 4.16 000/196] 4.16.4-stable review Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 001/196] Bluetooth: hci_bcm: Add irq_polarity module option Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 002/196] cpufreq: CPPC: Use transition_delay_us depending transition_latency Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 003/196] cpufreq: armada-37xx: Fix clock leak Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 004/196] ubifs: Check ubifs_wbuf_sync() return code Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 005/196] ubi: fastmap: Dont flush fastmap work on detach Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 006/196] ubi: Fix error for write access Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 007/196] ubi: Reject MLC NAND Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 008/196] mm/ksm.c: fix inconsistent accounting of zero pages Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 011/196] mm: hwpoison: disable memory error handling on 1GB hugepage Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 012/196] task_struct: only use anon struct under randstruct plugin Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 013/196] fs/reiserfs/journal.c: add missing resierfs_warning() arg Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 014/196] resource: fix integer overflow at reallocation Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 015/196] ipc/shm: fix use-after-free of shm file via remap_file_pages() Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 016/196] mm, slab: reschedule cache_reap() on the same CPU Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 017/196] usb: musb: gadget: misplaced out of bounds check Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 018/196] phy: allwinner: sun4i-usb: poll vbus changes on A23/A33 when driving VBUS Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 019/196] usb: gadget: udc: core: update usb_ep_queue() documentation Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 020/196] ARM64: dts: meson: reduce odroid-c2 eMMC maximum rate Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 021/196] KVM: arm/arm64: vgic-its: Fix potential overrun in vgic_copy_lpi_list Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 022/196] ARM: EXYNOS: Fix coupled CPU idle freeze on Exynos4210 Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 023/196] arm: dts: mt7623: fix USB initialization fails on bananapi-r2 Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 024/196] ARM: dts: at91: at91sam9g25: fix mux-mask pinctrl property Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 025/196] ARM: dts: exynos: Fix IOMMU support for GScaler devices on Exynos5250 Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 026/196] ARM: dts: at91: sama5d4: fix pinctrl compatible string Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 027/196] spi: atmel: init FIFOs before spi enable Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 028/196] spi: Fix scatterlist elements size in spi_map_buf Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 029/196] spi: Fix unregistration of controller with fixed SPI bus number Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 030/196] media: rc: oops in ir_timer_keyup after device unplug Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 031/196] media: atomisp_fops.c: disable atomisp_compat_ioctl32 Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 032/196] media: vivid: check if the cec_adapter is valid Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 033/196] media: vb2: core: Finish buffers at the end of the stream Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 034/196] media: vsp1: Fix BRx conditional path in WPF Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 035/196] x86/xen: Delay get_cpu_cap until stack canary is established Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 036/196] regmap: Fix reversed bounds check in regmap_raw_write() Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 037/196] ACPI / video: Add quirk to force acpi-video backlight on Samsung 670Z5E Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 038/196] ACPI / hotplug / PCI: Check presence of slot itself in get_slot_status() Greg Kroah-Hartman
2018-04-22 13:50 ` [PATCH 4.16 039/196] acpi, nfit: rework NVDIMM leaf method detection Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 040/196] USB: gadget: f_midi: fixing a possible double-free in f_midi Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 042/196] usb: dwc3: prevent setting PRTCAP to OTG from debugfs Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 043/196] usb: dwc3: pci: Properly cleanup resource Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 044/196] usb: dwc3: gadget: never call ->complete() from ->ep_queue() Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 045/196] cifs: fix memory leak in SMB2_open() Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 046/196] fix smb3-encryption breakage when CONFIG_DEBUG_SG=y Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 047/196] Tree connect for SMB3.1.1 must be signed for non-encrypted shares Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 048/196] cifs: smbd: avoid reconnect lockup Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 049/196] cifs: smbd: disconnect transport on RDMA errors Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 050/196] smb3: Fix root directory when server returns inode number of zero Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 051/196] HID: i2c-hid: fix size check and type usage Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 052/196] i2c: i801: Save register SMBSLVCMD value only once Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 053/196] i2c: i801: Restore configuration at shutdown Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 054/196] CIFS: refactor crypto shash/sdesc allocation&free Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 055/196] CIFS: add sha512 secmech Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 056/196] CIFS: implement v3.11 preauth integrity Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 057/196] CIFS: fix sha512 check in cifs_crypto_secmech_release Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 058/196] swiotlb: fix unexpected swiotlb_alloc_coherent failures Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 059/196] powerpc/64s: Fix pkey support in dt_cpu_ftrs, add CPU_FTR_PKEY bit Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 060/196] powerpc/powernv: Handle unknown OPAL errors in opal_nvram_write() Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 061/196] powerpc/eeh: Fix race with driver un/bind Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 062/196] powerpc/64s: Fix dt_cpu_ftrs to have restore_cpu clear unwanted LPCR bits Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 063/196] powerpc/64: Call H_REGISTER_PROC_TBL when running as a HPT guest on POWER9 Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 064/196] powerpc/64: Fix smp_wmb barrier definition use use lwsync consistently Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 065/196] powerpc/kprobes: Fix call trace due to incorrect preempt count Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 066/196] powerpc/kexec_file: Fix error code when trying to load kdump kernel Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 067/196] powerpc/powernv: Fix OPAL NVRAM driver OPAL_BUSY loops Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 068/196] powerpc/mm/radix: Fix checkstops caused by invalid tlbiel Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 069/196] ceph: always update atime/mtime/ctime for new inode Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 070/196] HID: Fix hid_report_len usage Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 071/196] HID: core: Fix size as type u32 Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 072/196] soc: mediatek: fix the mistaken pointer accessed when subdomains are added Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 073/196] ASoC: ssm2602: Replace reg_default_raw with reg_default Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 074/196] ASoC: topology: Fix kcontrol name string handling Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 075/196] thunderbolt: Wait a bit longer for ICM to authenticate the active NVM Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 076/196] thunderbolt: Serialize PCIe tunnel creation with PCI rescan Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 077/196] thunderbolt: Resume control channel after hibernation image is created Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 078/196] thunderbolt: Handle connecting device in place of host properly Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 079/196] thunderbolt: Prevent crash when ICM firmware is not running Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 080/196] irqchip/gic: Take lock when updating irq type Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 081/196] random: use a tighter cap in credit_entropy_bits_safe() Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 082/196] extcon: intel-cht-wc: Set direction and drv flags for V5 boost GPIO Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 083/196] block: use 32-bit blk_status_t on Alpha Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 084/196] jbd2: if the journal is aborted then dont allow update of the log tail Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 085/196] ext4: shutdown should not prevent get_write_access Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 086/196] ext4: eliminate sleep from shutdown ioctl Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 087/196] ext4: pass -ESHUTDOWN code to jbd2 layer Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 088/196] ext4: dont update checksum of new initialized bitmaps Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 089/196] ext4: protect i_disksize update by i_data_sem in direct write path Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 090/196] ext4: fix offset overflow on 32-bit archs in ext4_iomap_begin() Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 091/196] ext4: add validity checks for bitmap block numbers Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 092/196] ext4: limit xattr size to INT_MAX Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 093/196] ext4: fail ext4_iget for root directory if unallocated Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 094/196] ext4: always initialize the crc32c checksum driver Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 095/196] ext4: dont allow r/w mounts if metadata blocks overlap the superblock Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 096/196] ext4: move call to ext4_error() into ext4_xattr_check_block() Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 097/196] ext4: add bounds checking to ext4_xattr_find_entry() Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 098/196] ext4: add extra checks to ext4_xattr_block_get() Greg Kroah-Hartman
2018-04-22 13:51 ` [PATCH 4.16 099/196] ext4: force revalidation of directory pointer after seekdir(2) Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 100/196] dm: backfill abnormal IO support to non-splitting IO submission Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 101/196] dm crypt: limit the number of allocated pages Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 102/196] RDMA/ucma: Dont allow setting RDMA_OPTION_IB_PATH without an RDMA device Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 103/196] RDMA/mlx5: Protect from NULL pointer derefence Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 104/196] RDMA/rxe: Fix an out-of-bounds read Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 105/196] RDMA/core: Avoid that ib_drain_qp() triggers an out-of-bounds stack access Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 106/196] xprtrdma: Fix latency regression on NUMA NFS/RDMA clients Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 107/196] xprtrdma: Fix corner cases when handling device removal Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 108/196] ALSA: pcm: Avoid potential races between OSS ioctls and read/write Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 109/196] ALSA: pcm: Return -EBUSY for OSS ioctls changing busy streams Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 110/196] ALSA: pcm: Fix mutex unbalance in OSS emulation ioctls Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 111/196] ALSA: pcm: Fix UAF at PCM release via PCM timer access Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 112/196] ALSA: pcm: Fix endless loop for XRUN recovery in OSS emulation Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 113/196] IB/srp: Fix srp_abort() Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 114/196] IB/srp: Fix completion vector assignment algorithm Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 115/196] IB/srpt: Fix an out-of-bounds stack access in srpt_zerolength_write() Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 116/196] drivers/infiniband/core/verbs.c: fix build with gcc-4.4.4 Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 117/196] drivers/infiniband/ulp/srpt/ib_srpt.c: " Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 118/196] dm raid: fix nosync status Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 119/196] dmaengine: at_xdmac: fix rare residue corruption Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 120/196] cxl: Fix possible deadlock when processing page faults from cxllib Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 121/196] tpm: self test failure should not cause suspend to fail Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 122/196] libnvdimm, dimm: fix dpa reservation vs uninitialized label area Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 123/196] libnvdimm, namespace: use a safe lookup for dimm device name Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 124/196] vsprintf: Do not preprocess non-dereferenced pointers for bprintf (%px and %pK) Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 125/196] nfit, address-range-scrub: fix scrub in-progress reporting Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 126/196] nfit: skip region registration for incomplete control regions Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 127/196] ring-buffer: Check if memory is available before allocation Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 128/196] um: Compile with modern headers Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 129/196] um: Use POSIX ucontext_t instead of struct ucontext Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 130/196] iommu/vt-d: Fix a potential memory leak Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 131/196] mmc: core: Prevent bus reference leak in mmc_blk_init() Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 132/196] mmc: jz4740: Fix race condition in IRQ mask update Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 133/196] mmc: tmio: Fix error handling when issuing CMD23 Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 136/196] drm/amd/display: HDMI has no sound after Panel power off/on Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 137/196] trace_uprobe: Use %lx to display offset Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 138/196] PCI: Mark Broadcom HT1100 and HT2000 Root Port Extended Tags as broken Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 139/196] clk: mvebu: armada-38x: add support for missing clocks Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 140/196] clk: fix false-positive Wmaybe-uninitialized warning Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 141/196] clk: mediatek: fix PWM clock source by adding a fixed-factor clock Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 142/196] clk: bcm2835: De-assert/assert PLL reset signal when appropriate Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 143/196] clk: tegra: Mark HCLK, SCLK and EMC as critical Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 144/196] pwm: rcar: Fix a condition to prevent mismatch value setting to duty Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 145/196] pwm: mediatek: Fix up PWM4 and PWM5 malfunction on MT7623 Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 146/196] pwm: mediatek: Improve precision in rate calculation Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 147/196] thermal: imx: Fix race condition in imx_thermal_probe() Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 148/196] dt-bindings: clock: mediatek: add binding for fixed-factor clock axisel_d4 Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 149/196] watchdog: f71808e_wdt: Fix WD_EN register read Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 150/196] drm/amdgpu: Add an ATPX quirk for hybrid laptop Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 155/196] drm/rockchip: Clear all interrupts before requesting the IRQ Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 156/196] drm/radeon: add PX quirk for Asus K73TK Greg Kroah-Hartman
2018-04-22 13:52 ` [PATCH 4.16 159/196] ALSA: rawmidi: Fix missing input substream checks in compat ioctls Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 160/196] ALSA: hda - New VIA controller suppor no-snoop path Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 161/196] ALSA: hda/realtek - set PINCFG_HEADSET_MIC to parse_flags Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 162/196] ALSA: hda/realtek - adjust the location of one mic Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 163/196] random: fix crng_ready() test Greg Kroah-Hartman
2018-04-27 16:34   ` Dan Rue
2018-04-28  6:00     ` Greg Kroah-Hartman
2018-04-28 14:59       ` Dan Rue
2018-04-22 13:53 ` [PATCH 4.16 164/196] random: use a different mixing algorithm for add_device_randomness() Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 165/196] random: set up the NUMA crng instances after the CRNG is fully initialized Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 166/196] random: crng_reseed() should lock the crng instance that it is modifying Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 167/196] random: add new ioctl RNDRESEEDCRNG Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 168/196] HID: i2c-hid: Fix resume issue on Raydium touchscreen device Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 169/196] HID: input: fix battery level reporting on BT mice Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 170/196] HID: hidraw: Fix crash on HIDIOCGFEATURE with a destroyed device Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 171/196] HID: wacom: bluetooth: send exit report for recent Bluetooth devices Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 172/196] s390: add support for IBM z14 Model ZR1 Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 173/196] MIPS: uaccess: Add micromips clobbers to bzero invocation Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 174/196] MIPS: memset.S: EVA & fault support for small_memset Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 175/196] MIPS: memset.S: Fix return of __clear_user from Lpartial_fixup Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 176/196] MIPS: memset.S: Fix clobber of v1 in last_fixup Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 177/196] powerpc/eeh: Fix enabling bridge MMIO windows Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 178/196] powerpc/xive: Fix trying to "push" an already active pool VP Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 179/196] powerpc/lib: Fix off-by-one in alternate feature patching Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 180/196] udf: Fix leak of UTF-16 surrogates into encoded strings Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 181/196] fanotify: fix logic of events on child Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 182/196] mmc: sdhci-pci: Only do AMD tuning for HS200 Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 185/196] jffs2_kill_sb(): deal with failed allocations Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 186/196] hypfs_kill_super(): " Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 187/196] orangefs_kill_sb(): deal with allocation failures Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 188/196] rpc_pipefs: fix double-dput() Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 189/196] Dont leak MNT_INTERNAL away from internal mounts Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 190/196] libnvdimm, dimm: handle EACCES failures from label reads Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 191/196] device-dax: allow MAP_SYNC to succeed Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 192/196] autofs: mount point create should honour passed in mode Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 193/196] mm/filemap.c: fix NULL pointer in page_cache_tree_insert() Greg Kroah-Hartman
2018-04-22 13:53 ` Greg Kroah-Hartman [this message]
2018-04-22 13:53 ` [PATCH 4.16 195/196] HID: i2c-hid: fix inverted return value from i2c_hid_command() Greg Kroah-Hartman
2018-04-22 13:53 ` [PATCH 4.16 196/196] writeback: safer lock nesting Greg Kroah-Hartman
2018-04-22 20:13 ` [PATCH 4.16 000/196] 4.16.4-stable review Guenter Roeck
2018-04-22 20:25   ` Nathan Chancellor
2018-04-23  7:07     ` Greg Kroah-Hartman
2018-04-23 16:56 ` Guenter Roeck
2018-04-23 18:06   ` Greg Kroah-Hartman
2018-04-23 21:58     ` Guenter Roeck
2018-04-24  7:25       ` Greg Kroah-Hartman
2018-04-23 18:03 ` Greg Kroah-Hartman
2018-04-23 20:07   ` Shuah Khan
2018-04-24  0:32     ` Shuah Khan
2018-04-24  7:21       ` Greg Kroah-Hartman
2018-04-24  7:40 ` 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=20180422135114.320584004@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=changbin.du@intel.com \
    --cc=kevin.tian@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=weinan.z.li@intel.com \
    --cc=zhenyuw@linux.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).