All of lore.kernel.org
 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:25 UTC|newest]

Thread overview: 249+ 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 ` 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   ` 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   ` 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   ` 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   ` 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   ` 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
     [not found] ` <20190903162519.7136-1-sashal-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
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     ` 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     ` 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     ` 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     ` 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     ` 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 117/167] drm/amdgpu/{uvd,vcn}: " 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   ` 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   ` 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 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   ` 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   ` 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 16:40     ` Michel Dänzer
2019-09-03 17:03     ` Greg KH
2019-09-03 20:01       ` Sasha Levin
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 12:08               ` Sasha Levin
2019-09-04 15:05               ` Michel Dänzer
2019-09-04 15:05                 ` Michel Dänzer
2019-09-07 15:50               ` Joe Perches
2019-09-07 14:58           ` Alex Deucher
     [not found]             ` <CADnq5_Mfee4xmzMJ-Hmw251QCMfabWPKd8PX+o70D97qdCDJ8g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2019-09-09 15:25               ` Michel Dänzer
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   ` 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   ` 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   ` 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   ` 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   ` 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 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   ` Sasha Levin
2019-09-03 16:23   ` 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   ` 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:23   ` 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   ` 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   ` 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:24   ` Sasha Levin
2019-09-03 16:49   ` Eric W. Biederman
2019-09-03 16:49     ` Eric W. Biederman
2019-09-03 19:45     ` Sasha Levin
2019-09-03 19:45       ` Sasha Levin
2019-09-04 16:41       ` Eric W. Biederman
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   ` 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   ` 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 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   ` 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   ` 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   ` Sasha Levin
2019-09-03 16:24   ` 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   ` Sasha Levin
2019-09-03 16:24   ` 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   ` 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   ` 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-03 16:24   ` 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   ` 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   ` 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   ` 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   ` 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   ` 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   ` 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 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.