linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Coly Li <colyli@suse.de>, kbuild test robot <lkp@intel.com>,
	Jens Axboe <axboe@kernel.dk>, Sasha Levin <sashal@kernel.org>,
	linux-bcache@vger.kernel.org
Subject: [PATCH AUTOSEL 4.19 159/167] bcache: fix race in btree_flush_write()
Date: Tue,  3 Sep 2019 12:25:11 -0400	[thread overview]
Message-ID: <20190903162519.7136-159-sashal@kernel.org> (raw)
In-Reply-To: <20190903162519.7136-1-sashal@kernel.org>

From: Coly Li <colyli@suse.de>

[ Upstream commit 50a260e859964002dab162513a10f91ae9d3bcd3 ]

There is a race between mca_reap(), btree_node_free() and journal code
btree_flush_write(), which results very rare and strange deadlock or
panic and are very hard to reproduce.

Let me explain how the race happens. In btree_flush_write() one btree
node with oldest journal pin is selected, then it is flushed to cache
device, the select-and-flush is a two steps operation. Between these two
steps, there are something may happen inside the race window,
- The selected btree node was reaped by mca_reap() and allocated to
  other requesters for other btree node.
- The slected btree node was selected, flushed and released by mca
  shrink callback bch_mca_scan().
When btree_flush_write() tries to flush the selected btree node, firstly
b->write_lock is held by mutex_lock(). If the race happens and the
memory of selected btree node is allocated to other btree node, if that
btree node's write_lock is held already, a deadlock very probably
happens here. A worse case is the memory of the selected btree node is
released, then all references to this btree node (e.g. b->write_lock)
will trigger NULL pointer deference panic.

This race was introduced in commit cafe56359144 ("bcache: A block layer
cache"), and enlarged by commit c4dc2497d50d ("bcache: fix high CPU
occupancy during journal"), which selected 128 btree nodes and flushed
them one-by-one in a quite long time period.

Such race is not easy to reproduce before. On a Lenovo SR650 server with
48 Xeon cores, and configure 1 NVMe SSD as cache device, a MD raid0
device assembled by 3 NVMe SSDs as backing device, this race can be
observed around every 10,000 times btree_flush_write() gets called. Both
deadlock and kernel panic all happened as aftermath of the race.

The idea of the fix is to add a btree flag BTREE_NODE_journal_flush. It
is set when selecting btree nodes, and cleared after btree nodes
flushed. Then when mca_reap() selects a btree node with this bit set,
this btree node will be skipped. Since mca_reap() only reaps btree node
without BTREE_NODE_journal_flush flag, such race is avoided.

Once corner case should be noticed, that is btree_node_free(). It might
be called in some error handling code path. For example the following
code piece from btree_split(),
        2149 err_free2:
        2150         bkey_put(b->c, &n2->key);
        2151         btree_node_free(n2);
        2152         rw_unlock(true, n2);
        2153 err_free1:
        2154         bkey_put(b->c, &n1->key);
        2155         btree_node_free(n1);
        2156         rw_unlock(true, n1);
At line 2151 and 2155, the btree node n2 and n1 are released without
mac_reap(), so BTREE_NODE_journal_flush also needs to be checked here.
If btree_node_free() is called directly in such error handling path,
and the selected btree node has BTREE_NODE_journal_flush bit set, just
delay for 1 us and retry again. In this case this btree node won't
be skipped, just retry until the BTREE_NODE_journal_flush bit cleared,
and free the btree node memory.

Fixes: cafe56359144 ("bcache: A block layer cache")
Signed-off-by: Coly Li <colyli@suse.de>
Reported-and-tested-by: kbuild test robot <lkp@intel.com>
Cc: stable@vger.kernel.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/md/bcache/btree.c   | 28 +++++++++++++++++++++++++++-
 drivers/md/bcache/btree.h   |  2 ++
 drivers/md/bcache/journal.c |  7 +++++++
 3 files changed, 36 insertions(+), 1 deletion(-)

diff --git a/drivers/md/bcache/btree.c b/drivers/md/bcache/btree.c
index e0468fd41b6ea..45f684689c357 100644
--- a/drivers/md/bcache/btree.c
+++ b/drivers/md/bcache/btree.c
@@ -35,7 +35,7 @@
 #include <linux/rcupdate.h>
 #include <linux/sched/clock.h>
 #include <linux/rculist.h>
-
+#include <linux/delay.h>
 #include <trace/events/bcache.h>
 
 /*
@@ -649,12 +649,25 @@ static int mca_reap(struct btree *b, unsigned int min_order, bool flush)
 		up(&b->io_mutex);
 	}
 
+retry:
 	/*
 	 * BTREE_NODE_dirty might be cleared in btree_flush_btree() by
 	 * __bch_btree_node_write(). To avoid an extra flush, acquire
 	 * b->write_lock before checking BTREE_NODE_dirty bit.
 	 */
 	mutex_lock(&b->write_lock);
+	/*
+	 * If this btree node is selected in btree_flush_write() by journal
+	 * code, delay and retry until the node is flushed by journal code
+	 * and BTREE_NODE_journal_flush bit cleared by btree_flush_write().
+	 */
+	if (btree_node_journal_flush(b)) {
+		pr_debug("bnode %p is flushing by journal, retry", b);
+		mutex_unlock(&b->write_lock);
+		udelay(1);
+		goto retry;
+	}
+
 	if (btree_node_dirty(b))
 		__bch_btree_node_write(b, &cl);
 	mutex_unlock(&b->write_lock);
@@ -1071,7 +1084,20 @@ static void btree_node_free(struct btree *b)
 
 	BUG_ON(b == b->c->root);
 
+retry:
 	mutex_lock(&b->write_lock);
+	/*
+	 * If the btree node is selected and flushing in btree_flush_write(),
+	 * delay and retry until the BTREE_NODE_journal_flush bit cleared,
+	 * then it is safe to free the btree node here. Otherwise this btree
+	 * node will be in race condition.
+	 */
+	if (btree_node_journal_flush(b)) {
+		mutex_unlock(&b->write_lock);
+		pr_debug("bnode %p journal_flush set, retry", b);
+		udelay(1);
+		goto retry;
+	}
 
 	if (btree_node_dirty(b)) {
 		btree_complete_write(b, btree_current_write(b));
diff --git a/drivers/md/bcache/btree.h b/drivers/md/bcache/btree.h
index a68d6c55783bd..4d0cca145f699 100644
--- a/drivers/md/bcache/btree.h
+++ b/drivers/md/bcache/btree.h
@@ -158,11 +158,13 @@ enum btree_flags {
 	BTREE_NODE_io_error,
 	BTREE_NODE_dirty,
 	BTREE_NODE_write_idx,
+	BTREE_NODE_journal_flush,
 };
 
 BTREE_FLAG(io_error);
 BTREE_FLAG(dirty);
 BTREE_FLAG(write_idx);
+BTREE_FLAG(journal_flush);
 
 static inline struct btree_write *btree_current_write(struct btree *b)
 {
diff --git a/drivers/md/bcache/journal.c b/drivers/md/bcache/journal.c
index ec1e35a62934d..7bb15cddca5ec 100644
--- a/drivers/md/bcache/journal.c
+++ b/drivers/md/bcache/journal.c
@@ -404,6 +404,7 @@ static void btree_flush_write(struct cache_set *c)
 retry:
 	best = NULL;
 
+	mutex_lock(&c->bucket_lock);
 	for_each_cached_btree(b, c, i)
 		if (btree_current_write(b)->journal) {
 			if (!best)
@@ -416,9 +417,14 @@ static void btree_flush_write(struct cache_set *c)
 		}
 
 	b = best;
+	if (b)
+		set_btree_node_journal_flush(b);
+	mutex_unlock(&c->bucket_lock);
+
 	if (b) {
 		mutex_lock(&b->write_lock);
 		if (!btree_current_write(b)->journal) {
+			clear_bit(BTREE_NODE_journal_flush, &b->flags);
 			mutex_unlock(&b->write_lock);
 			/* We raced */
 			atomic_long_inc(&c->retry_flush_write);
@@ -426,6 +432,7 @@ static void btree_flush_write(struct cache_set *c)
 		}
 
 		__bch_btree_node_write(b, NULL);
+		clear_bit(BTREE_NODE_journal_flush, &b->flags);
 		mutex_unlock(&b->write_lock);
 	}
 }
-- 
2.20.1


  parent reply	other threads:[~2019-09-03 16:32 UTC|newest]

Thread overview: 195+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-03 16:22 [PATCH AUTOSEL 4.19 001/167] drm/i915: Re-apply "Perform link quality check, unconditionally during long pulse" Sasha Levin
2019-09-03 16:22 ` [PATCH AUTOSEL 4.19 002/167] media: cec/v4l2: move V4L2 specific CEC functions to V4L2 Sasha Levin
2019-09-03 16:22 ` [PATCH AUTOSEL 4.19 003/167] media: cec: remove cec-edid.c Sasha Levin
2019-09-03 16:22 ` [PATCH AUTOSEL 4.19 004/167] scsi: qla2xxx: Move log messages before issuing command to firmware Sasha Levin
2019-09-03 16:22 ` [PATCH AUTOSEL 4.19 005/167] keys: Fix the use of the C++ keyword "private" in uapi/linux/keyctl.h Sasha Levin
2019-09-03 16:22 ` [PATCH AUTOSEL 4.19 006/167] Drivers: hv: kvp: Fix two "this statement may fall through" warnings Sasha Levin
2019-09-03 16:22 ` [PATCH AUTOSEL 4.19 007/167] x86, hibernate: Fix nosave_regions setup for hibernation Sasha Levin
2019-09-03 16:22 ` [PATCH AUTOSEL 4.19 008/167] remoteproc: qcom: q6v5-mss: add SCM probe dependency Sasha Levin
2019-09-03 16:22 ` [PATCH AUTOSEL 4.19 009/167] drm/amdgpu/gfx9: Update gfx9 golden settings Sasha Levin
2019-09-03 16:22 ` [PATCH AUTOSEL 4.19 010/167] drm/amdgpu: Update gc_9_0 " Sasha Levin
2019-09-03 16:22 ` [PATCH AUTOSEL 4.19 011/167] KVM: x86: hyperv: enforce vp_index < KVM_MAX_VCPUS Sasha Levin
2019-09-03 16:22 ` [PATCH AUTOSEL 4.19 012/167] KVM: x86: hyperv: consistently use 'hv_vcpu' for 'struct kvm_vcpu_hv' variables Sasha Levin
2019-09-03 16:22 ` [PATCH AUTOSEL 4.19 013/167] KVM: x86: hyperv: keep track of mismatched VP indexes Sasha Levin
2019-09-03 16:22 ` [PATCH AUTOSEL 4.19 014/167] KVM: hyperv: define VP assist page helpers Sasha Levin
2019-09-03 16:22 ` [PATCH AUTOSEL 4.19 015/167] x86/kvm/lapic: preserve gfn_to_hva_cache len on cache reinit Sasha Levin
2019-09-03 16:22 ` [PATCH AUTOSEL 4.19 016/167] drm/i915: Fix intel_dp_mst_best_encoder() Sasha Levin
2019-09-03 16:22 ` [PATCH AUTOSEL 4.19 017/167] drm/i915: Rename PLANE_CTL_DECOMPRESSION_ENABLE Sasha Levin
2019-09-03 16:22 ` [PATCH AUTOSEL 4.19 018/167] drm/i915/gen9+: Fix initial readout for Y tiled framebuffers Sasha Levin
2019-09-03 16:22 ` [PATCH AUTOSEL 4.19 019/167] drm/atomic_helper: Disallow new modesets on unregistered connectors Sasha Levin
2019-09-03 16:22 ` [PATCH AUTOSEL 4.19 020/167] Drivers: hv: kvp: Fix the indentation of some "break" statements Sasha Levin
2019-09-03 16:22 ` [PATCH AUTOSEL 4.19 021/167] Drivers: hv: kvp: Fix the recent regression caused by incorrect clean-up Sasha Levin
2019-09-03 16:22 ` [PATCH AUTOSEL 4.19 022/167] powerplay: Respect units on max dcfclk watermark Sasha Levin
2019-09-03 16:22 ` [PATCH AUTOSEL 4.19 023/167] drm/amd/pp: Fix truncated clock value when set watermark Sasha Levin
2019-09-03 16:22 ` [PATCH AUTOSEL 4.19 024/167] drm/amd/dm: Understand why attaching path/tile properties are needed Sasha Levin
2019-09-03 16:22 ` [PATCH AUTOSEL 4.19 025/167] ARM: davinci: da8xx: define gpio interrupts as separate resources Sasha Levin
2019-09-03 16:22 ` [PATCH AUTOSEL 4.19 026/167] ARM: davinci: dm365: " Sasha Levin
2019-09-03 16:22 ` [PATCH AUTOSEL 4.19 027/167] ARM: davinci: dm646x: " Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 028/167] ARM: davinci: dm355: " Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 029/167] ARM: davinci: dm644x: " Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 030/167] s390/zcrypt: reinit ap queue state machine during device probe Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 031/167] media: vim2m: use workqueue Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 032/167] media: vim2m: use cancel_delayed_work_sync instead of flush_schedule_work Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 033/167] drm/i915: Restore sane defaults for KMS on GEM error load Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 034/167] drm/i915: Cleanup gt powerstate from gem Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 035/167] KVM: PPC: Book3S HV: Fix race between kvm_unmap_hva_range and MMU mode switch Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 036/167] Btrfs: clean up scrub is_dev_replace parameter Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 037/167] Btrfs: fix deadlock with memory reclaim during scrub Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 038/167] btrfs: Remove extent_io_ops::fill_delalloc Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 039/167] btrfs: Fix error handling in btrfs_cleanup_ordered_extents Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 040/167] scsi: megaraid_sas: Fix combined reply queue mode detection Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 041/167] scsi: megaraid_sas: Add check for reset adapter bit Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 042/167] scsi: megaraid_sas: Use 63-bit DMA addressing Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 043/167] powerpc/pkeys: Fix handling of pkey state across fork() Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 044/167] drm/amdgpu: validate user pitch alignment Sasha Levin
2019-09-03 16:40   ` Michel Dänzer
2019-09-03 17:03     ` Greg KH
2019-09-03 20:01       ` Sasha Levin
2019-09-03 20:16         ` Daniel Vetter
2019-09-04  8:55           ` Michel Dänzer
2019-09-04 12:08             ` Sasha Levin
2019-09-04 15:05               ` Michel Dänzer
2019-09-07 15:50               ` Joe Perches
2019-09-07 14:58           ` Alex Deucher
2019-09-09 15:25             ` Michel Dänzer
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 045/167] drm/amdgpu: validate user GEM object size Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 046/167] btrfs: volumes: Make sure no dev extent is beyond device boundary Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 047/167] btrfs: Use real device structure to verify dev extent Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 048/167] media: vim2m: only cancel work if it is for right context Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 049/167] ARC: show_regs: lockdep: re-enable preemption Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 050/167] ARC: mm: do_page_fault fixes #1: relinquish mmap_sem if signal arrives while handle_mm_fault Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 051/167] ALSA: pcm: Return 0 when size < start_threshold in capture Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 052/167] ALSA: pcm: Update hardware pointer before start capture Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 053/167] ALSA: pcm: Fix tight loop of OSS capture stream Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 054/167] IB/uverbs: Fix OOPs upon device disassociation Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 055/167] arm64: dts: rockchip: enable usb-host regulators at boot on rk3328-rock64 Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 056/167] crypto: ccree - fix resume race condition on init Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 057/167] ALSA: pcm: Revert capture stream behavior change in blocking mode Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 058/167] crypto: ccree - add missing inline qualifier Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 059/167] drm/vblank: Allow dynamic per-crtc max_vblank_count Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 060/167] drm/i915/ilk: Fix warning when reading emon_status with no output Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 061/167] mfd: Kconfig: Fix I2C_DESIGNWARE_PLATFORM dependencies Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 062/167] tpm: Fix some name collisions with drivers/char/tpm.h Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 063/167] bcache: replace hard coded number with BUCKET_GC_GEN_MAX Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 064/167] bcache: treat stale && dirty keys as bad keys Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 065/167] KVM: VMX: Compare only a single byte for VMCS' "launched" in vCPU-run Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 066/167] iio: adc: exynos-adc: Add S5PV210 variant Sasha Levin
2019-09-03 17:53   ` Jonathan Cameron
2019-09-03 19:46     ` Sasha Levin
2019-09-07 11:09       ` Jonathan Cameron
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 067/167] dt-bindings: " Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 068/167] iio: adc: exynos-adc: Use proper number of channels for Exynos4x12 Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 069/167] mt76: fix corrupted software generated tx CCMP PN Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 070/167] drm/nouveau: Don't WARN_ON VCPI allocation failures Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 071/167] iwlwifi: fix devices with PCI Device ID 0x34F0 and 11ac RF modules Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 072/167] iwlwifi: add new card for 9260 series Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 073/167] x86/kvmclock: set offset for kvm unstable clock Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 074/167] spi: spi-gpio: fix SPI_CS_HIGH capability Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 075/167] powerpc/kvm: Save and restore host AMR/IAMR/UAMOR Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 076/167] mmc: renesas_sdhi: Fix card initialization failure in high speed mode Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 077/167] btrfs: scrub: pass fs_info to scrub_setup_ctx Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 078/167] btrfs: scrub: move scrub_setup_ctx allocation out of device_list_mutex Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 079/167] btrfs: scrub: fix circular locking dependency warning Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 080/167] btrfs: init csum_list before possible free Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 081/167] PCI: qcom: Fix error handling in runtime PM support Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 082/167] PCI: qcom: Don't deassert reset GPIO during probe Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 083/167] drm: add __user attribute to ptr_to_compat() Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 084/167] CIFS: Fix error paths in writeback code Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 085/167] CIFS: Fix leaking locked VFS cache pages in writeback retry Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 086/167] x86/ftrace: Fix warning and considate ftrace_jmp_replace() and ftrace_call_replace() Sasha Levin
2019-09-03 16:23 ` [PATCH AUTOSEL 4.19 087/167] drm/i915: Handle vm_mmap error during I915_GEM_MMAP ioctl with WC set Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 088/167] drm/i915: Sanity check mmap length against object size Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 089/167] usb: typec: tcpm: Try PD-2.0 if sink does not respond to 3.0 source-caps Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 090/167] arm64: dts: stratix10: add the sysmgr-syscon property from the gmac's Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 091/167] IB/mlx5: Reset access mask when looping inside page fault handler Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 092/167] kvm: mmu: Fix overflow on kvm mmu page limit calculation Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 093/167] x86/kvm: move kvm_load/put_guest_xcr0 into atomic context Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 094/167] KVM: x86: Always use 32-bit SMRAM save state for 32-bit kernels Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 095/167] cifs: Fix lease buffer length error Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 096/167] media: i2c: tda1997x: select V4L2_FWNODE Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 097/167] ext4: protect journal inode's blocks using block_validity Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 098/167] ARM: dts: qcom: ipq4019: fix PCI range Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 099/167] ARM: dts: qcom: ipq4019: Fix MSI IRQ type Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 100/167] ARM: dts: qcom: ipq4019: enlarge PCIe BAR range Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 101/167] dt-bindings: mmc: Add supports-cqe property Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 102/167] dt-bindings: mmc: Add disable-cqe-dcmd property Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 103/167] PCI: Add macro for Switchtec quirk declarations Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 104/167] PCI: Reset Lenovo ThinkPad P50 nvgpu at boot if necessary Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 105/167] dm mpath: fix missing call of path selector type->end_io Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 106/167] blk-mq: free hw queue's resource in hctx's release handler Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 107/167] mmc: sdhci-pci: Add support for Intel CML Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 108/167] PCI: dwc: Use devm_pci_alloc_host_bridge() to simplify code Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 109/167] cifs: smbd: take an array of reqeusts when sending upper layer data Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 110/167] dm crypt: move detailed message into debug level Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 111/167] signal/arc: Use force_sig_fault where appropriate Sasha Levin
2019-09-03 16:49   ` Eric W. Biederman
2019-09-03 19:45     ` Sasha Levin
2019-09-04 16:41       ` Eric W. Biederman
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 112/167] ARC: mm: fix uninitialised signal code in do_page_fault Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 113/167] ARC: mm: SIGSEGV userspace trying to access kernel virtual memory Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 114/167] drm/amdkfd: Add missing Polaris10 ID Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 115/167] kvm: Check irqchip mode before assign irqfd Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 116/167] drm/amdgpu: fix ring test failure issue during s3 in vce 3.0 (V2) Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 117/167] drm/amdgpu/{uvd,vcn}: fetch ring's read_ptr after alloc Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 118/167] Btrfs: fix race between block group removal and block group allocation Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 119/167] cifs: add spinlock for the openFileList to cifsInodeInfo Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 120/167] clk: tegra: Fix maximum audio sync clock for Tegra124/210 Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 121/167] clk: tegra210: Fix default rates for HDA clocks Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 122/167] IB/hfi1: Avoid hardlockup with flushlist_lock Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 123/167] apparmor: reset pos on failure to unpack for various functions Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 124/167] scsi: target/core: Use the SECTOR_SHIFT constant Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 125/167] scsi: target/iblock: Fix overrun in WRITE SAME emulation Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 126/167] tpm: Fix TPM 1.2 Shutdown sequence to prevent future TPM operations Sasha Levin
2019-09-03 16:39   ` Doug Anderson
2019-09-03 16:53     ` Jerry Snitselaar
2019-09-03 19:43       ` Sasha Levin
2019-09-07 18:55         ` Jarkko Sakkinen
2019-09-07 22:04           ` Sasha Levin
2019-09-09 16:28             ` Jarkko Sakkinen
2019-09-11  7:56               ` Sasha Levin
2019-09-15 15:19               ` Jarkko Sakkinen
2019-09-07 16:55     ` Jarkko Sakkinen
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 127/167] staging: wilc1000: fix error path cleanup in wilc_wlan_initialize() Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 128/167] scsi: zfcp: fix request object use-after-free in send path causing wrong traces Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 129/167] cifs: Properly handle auto disabling of serverino option Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 130/167] ALSA: hda - Don't resume forcibly i915 HDMI/DP codec Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 131/167] ceph: use ceph_evict_inode to cleanup inode's resource Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 132/167] KVM: x86: optimize check for valid PAT value Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 133/167] KVM: VMX: Always signal #GP on WRMSR to MSR_IA32_CR_PAT with bad value Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 134/167] KVM: VMX: Fix handling of #MC that occurs during VM-Entry Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 135/167] KVM: VMX: check CPUID before allowing read/write of IA32_XSS Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 136/167] KVM: PPC: Use ccr field in pt_regs struct embedded in vcpu struct Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 137/167] KVM: PPC: Book3S HV: Fix CR0 setting in TM emulation Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 138/167] ARM: dts: gemini: Set DIR-685 SPI CS as active low Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 139/167] RDMA/srp: Document srp_parse_in() arguments Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 140/167] RDMA/srp: Accept again source addresses that do not have a port number Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 141/167] btrfs: correctly validate compression type Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 142/167] resource: Include resource end in walk_*() interfaces Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 143/167] resource: Fix find_next_iomem_res() iteration issue Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 144/167] resource: fix locking in find_next_iomem_res() Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 145/167] pstore: Fix double-free in pstore_mkfile() failure path Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 146/167] dm thin metadata: check if in fail_io mode when setting needs_check Sasha Levin
2019-09-03 16:24 ` [PATCH AUTOSEL 4.19 147/167] drm/panel: Add support for Armadeus ST0700 Adapt Sasha Levin
2019-09-05  8:55   ` Rob Herring
2019-09-05  9:03     ` Greg KH
2019-09-05  9:15       ` Rob Herring
2019-09-03 16:25 ` [PATCH AUTOSEL 4.19 148/167] ALSA: hda - Fix intermittent CORB/RIRB stall on Intel chips Sasha Levin
2019-09-03 16:25 ` [PATCH AUTOSEL 4.19 149/167] powerpc/mm: Limit rma_size to 1TB when running without HV mode Sasha Levin
2019-09-03 16:25 ` [PATCH AUTOSEL 4.19 150/167] iommu/iova: Remove stale cached32_node Sasha Levin
2019-09-03 16:25 ` [PATCH AUTOSEL 4.19 151/167] gpio: don't WARN() on NULL descs if gpiolib is disabled Sasha Levin
2019-09-03 16:25 ` [PATCH AUTOSEL 4.19 152/167] i2c: at91: disable TXRDY interrupt after sending data Sasha Levin
2019-09-03 16:25 ` [PATCH AUTOSEL 4.19 153/167] i2c: at91: fix clk_offset for sama5d2 Sasha Levin
2019-09-03 16:25 ` [PATCH AUTOSEL 4.19 154/167] mm/migrate.c: initialize pud_entry in migrate_vma() Sasha Levin
2019-09-03 16:25 ` [PATCH AUTOSEL 4.19 155/167] iio: adc: gyroadc: fix uninitialized return code Sasha Levin
2019-09-03 16:25 ` [PATCH AUTOSEL 4.19 156/167] NFSv4: Fix delegation state recovery Sasha Levin
2019-09-03 16:25 ` [PATCH AUTOSEL 4.19 157/167] bcache: only clear BTREE_NODE_dirty bit when it is set Sasha Levin
2019-09-03 16:25 ` [PATCH AUTOSEL 4.19 158/167] bcache: add comments for mutex_lock(&b->write_lock) Sasha Levin
2019-09-03 16:25 ` Sasha Levin [this message]
2019-09-03 16:25 ` [PATCH AUTOSEL 4.19 160/167] drm/i915/userptr: Acquire the page lock around set_page_dirty() Sasha Levin
2019-09-03 16:25 ` [PATCH AUTOSEL 4.19 161/167] drm/i915: Make sure cdclk is high enough for DP audio on VLV/CHV Sasha Levin
2019-09-03 16:25 ` [PATCH AUTOSEL 4.19 162/167] virtio/s390: fix race on airq_areas[] Sasha Levin
2019-09-03 16:25 ` [PATCH AUTOSEL 4.19 163/167] drm/atomic_helper: Allow DPMS On<->Off changes for unregistered connectors Sasha Levin
2019-09-03 16:25 ` [PATCH AUTOSEL 4.19 164/167] ext4: don't perform block validity checks on the journal inode Sasha Levin
2019-09-03 16:25 ` [PATCH AUTOSEL 4.19 165/167] ext4: fix block validity checks for journal inodes using indirect blocks Sasha Levin
2019-09-03 16:25 ` [PATCH AUTOSEL 4.19 166/167] ext4: unsigned int compared against zero Sasha Levin
2019-09-03 16:25 ` [PATCH AUTOSEL 4.19 167/167] PCI: Reset both NVIDIA GPU and HDA in ThinkPad P50 workaround Sasha Levin

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=20190903162519.7136-159-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=axboe@kernel.dk \
    --cc=colyli@suse.de \
    --cc=linux-bcache@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkp@intel.com \
    --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;
as well as URLs for NNTP newsgroup(s).