linux-kernel.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, Dave Chinner <dchinner@redhat.com>,
	Jan Kara <jack@suse.de>, Nicholas Piggin <npiggin@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 4.14 094/211] mm/page-writeback.c: fix range_cyclic writeback vs writepages deadlock
Date: Wed, 27 Nov 2019 21:30:27 +0100	[thread overview]
Message-ID: <20191127203102.600580491@linuxfoundation.org> (raw)
In-Reply-To: <20191127203049.431810767@linuxfoundation.org>

From: Dave Chinner <dchinner@redhat.com>

[ Upstream commit 64081362e8ff4587b4554087f3cfc73d3e0a4cd7 ]

We've recently seen a workload on XFS filesystems with a repeatable
deadlock between background writeback and a multi-process application
doing concurrent writes and fsyncs to a small range of a file.

range_cyclic
writeback		Process 1		Process 2

xfs_vm_writepages
  write_cache_pages
    writeback_index = 2
    cycled = 0
    ....
    find page 2 dirty
    lock Page 2
    ->writepage
      page 2 writeback
      page 2 clean
      page 2 added to bio
    no more pages
			write()
			locks page 1
			dirties page 1
			locks page 2
			dirties page 1
			fsync()
			....
			xfs_vm_writepages
			write_cache_pages
			  start index 0
			  find page 1 towrite
			  lock Page 1
			  ->writepage
			    page 1 writeback
			    page 1 clean
			    page 1 added to bio
			  find page 2 towrite
			  lock Page 2
			  page 2 is writeback
			  <blocks>
						write()
						locks page 1
						dirties page 1
						fsync()
						....
						xfs_vm_writepages
						write_cache_pages
						  start index 0

    !done && !cycled
      sets index to 0, restarts lookup
    find page 1 dirty
						  find page 1 towrite
						  lock Page 1
						  page 1 is writeback
						  <blocks>

    lock Page 1
    <blocks>

DEADLOCK because:

	- process 1 needs page 2 writeback to complete to make
	  enough progress to issue IO pending for page 1
	- writeback needs page 1 writeback to complete so process 2
	  can progress and unlock the page it is blocked on, then it
	  can issue the IO pending for page 2
	- process 2 can't make progress until process 1 issues IO
	  for page 1

The underlying cause of the problem here is that range_cyclic writeback is
processing pages in descending index order as we hold higher index pages
in a structure controlled from above write_cache_pages().  The
write_cache_pages() caller needs to be able to submit these pages for IO
before write_cache_pages restarts writeback at mapping index 0 to avoid
wcp inverting the page lock/writeback wait order.

generic_writepages() is not susceptible to this bug as it has no private
context held across write_cache_pages() - filesystems using this
infrastructure always submit pages in ->writepage immediately and so there
is no problem with range_cyclic going back to mapping index 0.

However:
	mpage_writepages() has a private bio context,
	exofs_writepages() has page_collect
	fuse_writepages() has fuse_fill_wb_data
	nfs_writepages() has nfs_pageio_descriptor
	xfs_vm_writepages() has xfs_writepage_ctx

All of these ->writepages implementations can hold pages under writeback
in their private structures until write_cache_pages() returns, and hence
they are all susceptible to this deadlock.

Also worth noting is that ext4 has it's own bastardised version of
write_cache_pages() and so it /may/ have an equivalent deadlock.  I looked
at the code long enough to understand that it has a similar retry loop for
range_cyclic writeback reaching the end of the file and then promptly ran
away before my eyes bled too much.  I'll leave it for the ext4 developers
to determine if their code is actually has this deadlock and how to fix it
if it has.

There's a few ways I can see avoid this deadlock.  There's probably more,
but these are the first I've though of:

1. get rid of range_cyclic altogether

2. range_cyclic always stops at EOF, and we start again from
writeback index 0 on the next call into write_cache_pages()

2a. wcp also returns EAGAIN to ->writepages implementations to
indicate range cyclic has hit EOF. writepages implementations can
then flush the current context and call wpc again to continue. i.e.
lift the retry into the ->writepages implementation

3. range_cyclic uses trylock_page() rather than lock_page(), and it
skips pages it can't lock without blocking. It will already do this
for pages under writeback, so this seems like a no-brainer

3a. all non-WB_SYNC_ALL writeback uses trylock_page() to avoid
blocking as per pages under writeback.

I don't think #1 is an option - range_cyclic prevents frequently
dirtied lower file offset from starving background writeback of
rarely touched higher file offsets.

#2 is simple, and I don't think it will have any impact on
performance as going back to the start of the file implies an
immediate seek. We'll have exactly the same number of seeks if we
switch writeback to another inode, and then come back to this one
later and restart from index 0.

#2a is pretty much "status quo without the deadlock". Moving the
retry loop up into the wcp caller means we can issue IO on the
pending pages before calling wcp again, and so avoid locking or
waiting on pages in the wrong order. I'm not convinced we need to do
this given that we get the same thing from #2 on the next writeback
call from the writeback infrastructure.

#3 is really just a band-aid - it doesn't fix the access/wait
inversion problem, just prevents it from becoming a deadlock
situation. I'd prefer we fix the inversion, not sweep it under the
carpet like this.

#3a is really an optimisation that just so happens to include the
band-aid fix of #3.

So it seems that the simplest way to fix this issue is to implement
solution #2

Link: http://lkml.kernel.org/r/20181005054526.21507-1-david@fromorbit.com
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Jan Kara <jack@suse.de>
Cc: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 mm/page-writeback.c | 33 +++++++++++++++------------------
 1 file changed, 15 insertions(+), 18 deletions(-)

diff --git a/mm/page-writeback.c b/mm/page-writeback.c
index e001de5ac50cb..a40c075fd8f1e 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -2150,6 +2150,13 @@ EXPORT_SYMBOL(tag_pages_for_writeback);
  * not miss some pages (e.g., because some other process has cleared TOWRITE
  * tag we set). The rule we follow is that TOWRITE tag can be cleared only
  * by the process clearing the DIRTY tag (and submitting the page for IO).
+ *
+ * To avoid deadlocks between range_cyclic writeback and callers that hold
+ * pages in PageWriteback to aggregate IO until write_cache_pages() returns,
+ * we do not loop back to the start of the file. Doing so causes a page
+ * lock/page writeback access order inversion - we should only ever lock
+ * multiple pages in ascending page->index order, and looping back to the start
+ * of the file violates that rule and causes deadlocks.
  */
 int write_cache_pages(struct address_space *mapping,
 		      struct writeback_control *wbc, writepage_t writepage,
@@ -2164,7 +2171,6 @@ int write_cache_pages(struct address_space *mapping,
 	pgoff_t index;
 	pgoff_t end;		/* Inclusive */
 	pgoff_t done_index;
-	int cycled;
 	int range_whole = 0;
 	int tag;
 
@@ -2172,23 +2178,17 @@ int write_cache_pages(struct address_space *mapping,
 	if (wbc->range_cyclic) {
 		writeback_index = mapping->writeback_index; /* prev offset */
 		index = writeback_index;
-		if (index == 0)
-			cycled = 1;
-		else
-			cycled = 0;
 		end = -1;
 	} else {
 		index = wbc->range_start >> PAGE_SHIFT;
 		end = wbc->range_end >> PAGE_SHIFT;
 		if (wbc->range_start == 0 && wbc->range_end == LLONG_MAX)
 			range_whole = 1;
-		cycled = 1; /* ignore range_cyclic tests */
 	}
 	if (wbc->sync_mode == WB_SYNC_ALL || wbc->tagged_writepages)
 		tag = PAGECACHE_TAG_TOWRITE;
 	else
 		tag = PAGECACHE_TAG_DIRTY;
-retry:
 	if (wbc->sync_mode == WB_SYNC_ALL || wbc->tagged_writepages)
 		tag_pages_for_writeback(mapping, index, end);
 	done_index = index;
@@ -2296,17 +2296,14 @@ int write_cache_pages(struct address_space *mapping,
 		pagevec_release(&pvec);
 		cond_resched();
 	}
-	if (!cycled && !done) {
-		/*
-		 * range_cyclic:
-		 * We hit the last page and there is more work to be done: wrap
-		 * back to the start of the file
-		 */
-		cycled = 1;
-		index = 0;
-		end = writeback_index - 1;
-		goto retry;
-	}
+
+	/*
+	 * If we hit the last page and there is more work to be done: wrap
+	 * back the index back to the start of the file for the next
+	 * time we are called.
+	 */
+	if (wbc->range_cyclic && !done)
+		done_index = 0;
 	if (wbc->range_cyclic || (range_whole && wbc->nr_to_write > 0))
 		mapping->writeback_index = done_index;
 
-- 
2.20.1




  parent reply	other threads:[~2019-11-27 21:34 UTC|newest]

Thread overview: 220+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-27 20:28 [PATCH 4.14 000/211] 4.14.157-stable review Greg Kroah-Hartman
2019-11-27 20:28 ` [PATCH 4.14 001/211] net/mlx4_en: fix mlx4 ethtool -N insertion Greg Kroah-Hartman
2019-11-27 20:28 ` [PATCH 4.14 002/211] net: rtnetlink: prevent underflows in do_setvfinfo() Greg Kroah-Hartman
2019-11-27 20:28 ` [PATCH 4.14 003/211] sfc: Only cancel the PPS workqueue if it exists Greg Kroah-Hartman
2019-11-27 20:28 ` [PATCH 4.14 004/211] net/mlx5e: Fix set vf link state error flow Greg Kroah-Hartman
2019-11-27 20:28 ` [PATCH 4.14 005/211] net/mlxfw: Verify FSM error code translation doesnt exceed array size Greg Kroah-Hartman
2019-11-27 20:28 ` [PATCH 4.14 006/211] net/sched: act_pedit: fix WARN() in the traffic path Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 007/211] vhost/vsock: split packets to send using multiple buffers Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 008/211] gpio: max77620: Fixup debounce delays Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 009/211] tools: gpio: Correctly add make dependencies for gpio_utils Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 010/211] nbd:fix memory leak in nbd_get_socket() Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 011/211] virtio_console: allocate inbufs in add_port() only if it is needed Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 012/211] Revert "fs: ocfs2: fix possible null-pointer dereferences in ocfs2_xa_prepare_entry()" Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 013/211] mm/ksm.c: dont WARN if page is still mapped in remove_stable_node() Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 014/211] drm/i915/userptr: Try to acquire the page lock around set_page_dirty() Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 015/211] platform/x86: asus-nb-wmi: Support ALS on the Zenbook UX430UQ Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 016/211] platform/x86: asus-wmi: Only Tell EC the OS will handle display hotkeys from asus_nb_wmi Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 017/211] mwifiex: Fix NL80211_TX_POWER_LIMITED Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 018/211] ALSA: isight: fix leak of reference to firewire unit in error path of .probe callback Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 019/211] printk: fix integer overflow in setup_log_buf() Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 020/211] gfs2: Fix marking bitmaps non-full Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 021/211] pty: fix compat ioctls Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 022/211] synclink_gt(): fix compat_ioctl() Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 023/211] powerpc: Fix signedness bug in update_flash_db() Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 024/211] powerpc/boot: Disable vector instructions Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 025/211] powerpc/eeh: Fix use of EEH_PE_KEEP on wrong field Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 026/211] EDAC, thunderx: Fix memory leak in thunderx_l2c_threaded_isr() Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 027/211] brcmsmac: AP mode: update beacon when TIM changes Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 028/211] ath10k: allocate small size dma memory in ath10k_pci_diag_write_mem Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 029/211] skd: fixup usage of legacy IO API Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 030/211] cdrom: dont attempt to fiddle with cdo->capability Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 031/211] spi: sh-msiof: fix deferred probing Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 032/211] mmc: mediatek: fix cannot receive new request when msdc_cmd_is_ready fail Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 033/211] btrfs: handle error of get_old_root Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 034/211] gsmi: Fix bug in append_to_eventlog sysfs handler Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 035/211] misc: mic: fix a DMA pool free failure Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 036/211] w1: IAD Register is yet readable trough iad sys file. Fix snprintf (%u for unsigned, count for max size) Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 037/211] m68k: fix command-line parsing when passed from u-boot Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 038/211] RDMA/bnxt_re: Fix qp async event reporting Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 039/211] pinctrl: sunxi: Fix a memory leak in sunxi_pinctrl_build_state() Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 040/211] pwm: lpss: Only set update bit if we are actually changing the settings Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 041/211] amiflop: clean up on errors during setup Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 042/211] qed: Align local and global PTT to propagate through the APIs Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 043/211] scsi: ips: fix missing break in switch Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 044/211] KVM: nVMX: reset cache/shadows when switching loaded VMCS Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 045/211] KVM/x86: Fix invvpid and invept register operand size in 64-bit mode Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 046/211] scsi: isci: Use proper enumerated type in atapi_d2h_reg_frame_handler Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 047/211] scsi: isci: Change sci_controller_start_tasks return type to sci_status Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 048/211] scsi: iscsi_tcp: Explicitly cast param in iscsi_sw_tcp_host_get_param Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 049/211] crypto: ccree - avoid implicit enum conversion Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 050/211] nvmet-fcloop: suppress a compiler warning Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 051/211] clk: mmp2: fix the clock id for sdh2_clk and sdh3_clk Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 052/211] clk: at91: audio-pll: fix audio pmc type Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 053/211] ASoC: tegra_sgtl5000: fix device_node refcounting Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 054/211] scsi: dc395x: fix dma API usage in srb_done Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 055/211] scsi: dc395x: fix DMA API usage in sg_update_list Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 056/211] net: dsa: mv88e6xxx: Fix 88E6141/6341 2500mbps SERDES speed Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 057/211] net: fix warning in af_unix Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 058/211] net: ena: Fix Kconfig dependency on X86 Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 059/211] xfs: fix use-after-free race in xfs_buf_rele Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 060/211] kprobes, x86/ptrace.h: Make regs_get_kernel_stack_nth() not fault on bad stack Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 061/211] PM / Domains: Deal with multiple states but no governor in genpd Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 062/211] ALSA: i2c/cs8427: Fix int to char conversion Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 063/211] macintosh/windfarm_smu_sat: Fix debug output Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 064/211] PCI: vmd: Detach resources after stopping root bus Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 065/211] USB: misc: appledisplay: fix backlight update_status return code Greg Kroah-Hartman
2019-11-27 20:29 ` [PATCH 4.14 066/211] usbip: tools: fix atoi() on non-null terminated string Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 067/211] dm raid: avoid bitmap with raid4/5/6 journal device Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 068/211] SUNRPC: Fix a compile warning for cmpxchg64() Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 069/211] sunrpc: safely reallow resvport min/max inversion Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 070/211] atm: zatm: Fix empty body Clang warnings Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 071/211] s390/perf: Return error when debug_register fails Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 072/211] spi: omap2-mcspi: Set FIFO DMA trigger level to word length Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 073/211] sparc: Fix parport build warnings Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 074/211] powerpc/pseries: Export raw per-CPU VPA data via debugfs Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 075/211] ceph: fix dentry leak in ceph_readdir_prepopulate Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 076/211] rtc: s35390a: Change bufs type to u8 in s35390a_init Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 077/211] f2fs: fix to spread clear_cold_data() Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 078/211] mISDN: Fix type of switch control variable in ctrl_teimanager Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 079/211] qlcnic: fix a return in qlcnic_dcb_get_capability() Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 080/211] net: ethernet: ti: cpsw: unsync mcast entries while switch promisc mode Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 081/211] mfd: arizona: Correct calling of runtime_put_sync Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 082/211] mfd: mc13xxx-core: Fix PMIC shutdown when reading ADC values Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 083/211] mfd: intel_soc_pmic_bxtwc: Chain power button IRQs as well Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 084/211] mfd: max8997: Enale irq-wakeup unconditionally Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 085/211] selftests/ftrace: Fix to test kprobe $comm arg only if available Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 086/211] selftests: watchdog: fix message when /dev/watchdog open fails Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 087/211] selftests: watchdog: Fix error message Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 088/211] thermal: rcar_thermal: Prevent hardware access during system suspend Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 089/211] bpf: devmap: fix wrong interface selection in notifier_call Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 090/211] powerpc/process: Fix flush_all_to_thread for SPE Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 091/211] sparc64: Rework xchg() definition to avoid warnings Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 092/211] arm64: lib: use C string functions with KASAN enabled Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 093/211] fs/ocfs2/dlm/dlmdebug.c: fix a sleep-in-atomic-context bug in dlm_print_one_mle() Greg Kroah-Hartman
2019-11-27 20:30 ` Greg Kroah-Hartman [this message]
2019-11-27 20:30 ` [PATCH 4.14 095/211] macsec: update operstate when lower device changes Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 096/211] macsec: let the administrator set UP state even if lowerdev is down Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 097/211] block: fix the DISCARD request merge Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 098/211] i2c: uniphier-f: make driver robust against concurrency Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 099/211] i2c: uniphier-f: fix occasional timeout error Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 100/211] i2c: uniphier-f: fix race condition when IRQ is cleared Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 101/211] um: Make line/tty semantics use true write IRQ Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 102/211] vfs: avoid problematic remapping requests into partial EOF block Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 103/211] powerpc/xmon: Relax frame size for clang Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 104/211] selftests/powerpc/signal: Fix out-of-tree build Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 105/211] selftests/powerpc/switch_endian: " Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 106/211] selftests/powerpc/cache_shape: " Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 107/211] linux/bitmap.h: handle constant zero-size bitmaps correctly Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 108/211] linux/bitmap.h: fix type of nbits in bitmap_shift_right() Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 109/211] hfsplus: fix BUG on bnode parent update Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 110/211] hfs: " Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 111/211] hfsplus: prevent btree data loss on ENOSPC Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 112/211] hfs: " Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 113/211] hfsplus: fix return value of hfsplus_get_block() Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 114/211] hfs: fix return value of hfs_get_block() Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 115/211] hfsplus: update timestamps on truncate() Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 116/211] hfs: update timestamp " Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 117/211] fs/hfs/extent.c: fix array out of bounds read of array extent Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 118/211] mm/memory_hotplug: make add_memory() take the device_hotplug_lock Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 119/211] igb: shorten maximum PHC timecounter update interval Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 120/211] net: hns3: bugfix for buffer not free problem during resetting Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 121/211] ntb_netdev: fix sleep time mismatch Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 122/211] ntb: intel: fix return value for ndev_vec_mask() Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 123/211] arm64: makefile fix build of .i file in external module case Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 124/211] ocfs2: dont put and assigning null to bh allocated outside Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 125/211] ocfs2: fix clusters leak in ocfs2_defrag_extent() Greg Kroah-Hartman
2019-11-27 20:30 ` [PATCH 4.14 126/211] net: do not abort bulk send on BQL status Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 127/211] sched/topology: Fix off by one bug Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 128/211] sched/fair: Dont increase sd->balance_interval on newidle balance Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 129/211] openvswitch: fix linking without CONFIG_NF_CONNTRACK_LABELS Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 130/211] clk: sunxi-ng: enable so-said LDOs for A64 SoCs pll-mipi clock Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 131/211] audit: print empty EXECVE args Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 132/211] btrfs: avoid link error with CONFIG_NO_AUTO_INLINE Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 133/211] wil6210: fix locking in wmi_call Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 134/211] wlcore: Fix the return value in case of error in wlcore_vendor_cmd_smart_config_start() Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 135/211] rtl8xxxu: Fix missing break in switch Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 136/211] brcmsmac: never log "tid x is not aggable" by default Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 137/211] wireless: airo: potential buffer overflow in sprintf() Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 138/211] rtlwifi: rtl8192de: Fix misleading REG_MCUFWDL information Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 139/211] net: dsa: bcm_sf2: Turn on PHY to allow successful registration Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 140/211] scsi: mpt3sas: Fix Sync cache command failure during driver unload Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 141/211] scsi: mpt3sas: Dont modify EEDPTagMode field setting on SAS3.5 HBA devices Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 142/211] scsi: mpt3sas: Fix driver modifying persistent data in Manufacturing page11 Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 143/211] scsi: megaraid_sas: Fix msleep granularity Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 144/211] scsi: megaraid_sas: Fix goto labels in error handling Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 145/211] scsi: lpfc: fcoe: Fix link down issue after 1000+ link bounces Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 146/211] scsi: lpfc: Correct loss of fc4 type on remote port address change Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 147/211] dlm: fix invalid free Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 148/211] dlm: dont leak kernel pointer to userspace Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 149/211] vrf: mark skb for multicast or link-local as enslaved to VRF Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 150/211] ACPICA: Use %d for signed int print formatting instead of %u Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 151/211] net: bcmgenet: return correct value ret from bcmgenet_power_down Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 152/211] sock: Reset dst when changing sk_mark via setsockopt Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 153/211] of: unittest: allow base devicetree to have symbol metadata Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 154/211] cfg80211: Prevent regulatory restore during STA disconnect in concurrent interfaces Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 155/211] pinctrl: qcom: spmi-gpio: fix gpio-hog related boot issues Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 156/211] pinctrl: lpc18xx: Use define directive for PIN_CONFIG_GPIO_PIN_INT Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 157/211] pinctrl: zynq: Use define directive for PIN_CONFIG_IO_STANDARD Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 158/211] PCI: keystone: Use quirk to limit MRRS for K2G Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 159/211] spi: omap2-mcspi: Fix DMA and FIFO event trigger size mismatch Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 160/211] i2c: uniphier-f: fix timeout error after reading 8 bytes Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 161/211] mm/memory_hotplug: Do not unlock when fails to take the device_hotplug_lock Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 162/211] ipv6: Fix handling of LLA with VRF and sockets bound to VRF Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 163/211] cfg80211: call disconnect_wk when AP stops Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 164/211] Bluetooth: Fix invalid-free in bcsp_close() Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 165/211] KVM: MMU: Do not treat ZONE_DEVICE pages as being reserved Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 166/211] ath10k: Fix a NULL-ptr-deref bug in ath10k_usb_alloc_urb_from_pipe Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 167/211] ath9k_hw: fix uninitialized variable data Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 168/211] md/raid10: prevent access of uninitialized resync_pages offset Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 170/211] net: phy: dp83867: fix speed 10 in sgmii mode Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 171/211] net: phy: dp83867: increase SGMII autoneg timer duration Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 172/211] arm64: fix for bad_mode() handler to always result in panic Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 173/211] cpufreq: Skip cpufreq resume if its not suspended Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 174/211] ocfs2: remove ocfs2_is_o2cb_active() Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 175/211] ARM: 8904/1: skip nomap memblocks while finding the lowmem/highmem boundary Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 176/211] ARC: perf: Accommodate big-endian CPU Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 177/211] x86/insn: Fix awk regexp warnings Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 178/211] x86/speculation: Fix incorrect MDS/TAA mitigation status Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 179/211] x86/speculation: Fix redundant MDS mitigation message Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 180/211] nbd: prevent memory leak Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 181/211] x86/doublefault/32: Fix stack canaries in the double fault handler Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 182/211] x86/cpu_entry_area: Add guard page for entry stack on 32bit Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 183/211] selftests/x86/mov_ss_trap: Fix the SYSENTER test Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 184/211] selftests/x86/sigreturn/32: Invalidate DS and ES when abusing the kernel Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 185/211] x86/pti/32: Calculate the various PTI cpu_entry_area sizes correctly, make the CPU_ENTRY_AREA_PAGES assert precise Greg Kroah-Hartman
2019-11-27 20:31 ` [PATCH 4.14 186/211] nfc: port100: handle command failure cleanly Greg Kroah-Hartman
2019-11-27 20:32 ` [PATCH 4.14 187/211] net-sysfs: Fix reference count leak in rx|netdev_queue_add_kobject Greg Kroah-Hartman
2019-11-27 20:32 ` [PATCH 4.14 188/211] media: vivid: Set vid_cap_streaming and vid_out_streaming to true Greg Kroah-Hartman
2019-11-27 20:32 ` [PATCH 4.14 189/211] media: vivid: Fix wrong locking that causes race conditions on streaming stop Greg Kroah-Hartman
2019-11-27 20:32 ` [PATCH 4.14 190/211] media: usbvision: Fix races among open, close, and disconnect Greg Kroah-Hartman
2019-11-27 20:32 ` [PATCH 4.14 191/211] cpufreq: Add NULL checks to show() and store() methods of cpufreq Greg Kroah-Hartman
2019-11-27 20:32 ` [PATCH 4.14 192/211] media: uvcvideo: Fix error path in control parsing failure Greg Kroah-Hartman
2019-11-27 20:32 ` [PATCH 4.14 193/211] media: b2c2-flexcop-usb: add sanity checking Greg Kroah-Hartman
2019-11-27 20:32 ` [PATCH 4.14 194/211] media: cxusb: detect cxusb_ctrl_msg error in query Greg Kroah-Hartman
2019-11-27 20:32 ` [PATCH 4.14 195/211] media: imon: invalid dereference in imon_touch_event Greg Kroah-Hartman
2019-11-27 20:32 ` [PATCH 4.14 196/211] virtio_ring: fix return code on DMA mapping fails Greg Kroah-Hartman
2019-11-27 20:32 ` [PATCH 4.14 197/211] usbip: tools: fix fd leakage in the function of read_attr_usbip_status Greg Kroah-Hartman
2019-11-27 20:32 ` [PATCH 4.14 198/211] usbip: Fix uninitialized symbol nents in stub_recv_cmd_submit() Greg Kroah-Hartman
2019-11-27 20:32 ` [PATCH 4.14 199/211] usb-serial: cp201x: support Mark-10 digital force gauge Greg Kroah-Hartman
2019-11-27 20:32 ` [PATCH 4.14 200/211] USB: chaoskey: fix error case of a timeout Greg Kroah-Hartman
2019-11-27 20:32 ` [PATCH 4.14 201/211] appledisplay: fix error handling in the scheduled work Greg Kroah-Hartman
2019-11-27 20:32 ` [PATCH 4.14 202/211] USB: serial: mos7840: add USB ID to support Moxa UPort 2210 Greg Kroah-Hartman
2019-11-27 20:32 ` [PATCH 4.14 203/211] USB: serial: mos7720: fix remote wakeup Greg Kroah-Hartman
2019-11-27 20:32 ` [PATCH 4.14 204/211] USB: serial: mos7840: " Greg Kroah-Hartman
2019-11-27 20:32 ` [PATCH 4.14 205/211] USB: serial: option: add support for DW5821e with eSIM support Greg Kroah-Hartman
2019-11-27 20:32 ` [PATCH 4.14 206/211] USB: serial: option: add support for Foxconn T77W968 LTE modules Greg Kroah-Hartman
2019-11-27 20:32 ` [PATCH 4.14 207/211] staging: comedi: usbduxfast: usbduxfast_ai_cmdtest rounding error Greg Kroah-Hartman
2019-11-27 20:32 ` [PATCH 4.14 208/211] powerpc/64s: support nospectre_v2 cmdline option Greg Kroah-Hartman
2019-11-27 20:32 ` [PATCH 4.14 209/211] powerpc/book3s64: Fix link stack flush on context switch Greg Kroah-Hartman
2019-11-27 20:32 ` [PATCH 4.14 210/211] KVM: PPC: Book3S HV: Flush link stack on guest exit to host kernel Greg Kroah-Hartman
2019-11-27 20:32 ` [PATCH 4.14 211/211] x86/hyperv: mark hyperv_init as __init function Greg Kroah-Hartman
2019-11-28  5:02 ` [PATCH 4.14 000/211] 4.14.157-stable review Naresh Kamboju
2019-11-28  5:16 ` Naresh Kamboju
2019-11-28  6:21   ` Naresh Kamboju
2019-11-28  7:35     ` Greg Kroah-Hartman
2019-11-28 10:56 ` Jon Hunter
2019-11-28 16:15 ` Guenter Roeck
2019-11-29  0:01 ` shuah
2019-11-29 10:36 ` Greg Kroah-Hartman
2019-11-29 18:48   ` 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=20191127203102.600580491@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=akpm@linux-foundation.org \
    --cc=dchinner@redhat.com \
    --cc=jack@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=npiggin@gmail.com \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=torvalds@linux-foundation.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).