All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: stable@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Zhikang Zhang <zhangzhikang1@huawei.com>,
	Jaegeuk Kim <jaegeuk@kernel.org>, Sasha Levin <sashal@kernel.org>
Subject: [PATCH AUTOSEL 4.18 120/126] f2fs: avoid sleeping under spin_lock
Date: Wed, 31 Oct 2018 19:07:48 -0400	[thread overview]
Message-ID: <20181031230754.29029-120-sashal@kernel.org> (raw)
In-Reply-To: <20181031230754.29029-1-sashal@kernel.org>

From: Zhikang Zhang <zhangzhikang1@huawei.com>

[ Upstream commit b430f7263673eab1dc40e662ae3441a9619d16b8 ]

In the call trace below, we might sleep in function dput().

So in order to avoid sleeping under spin_lock, we remove f2fs_mark_inode_dirty_sync
from __try_update_largest_extent && __drop_largest_extent.

BUG: sleeping function called from invalid context at fs/dcache.c:796
Call trace:
	dump_backtrace+0x0/0x3f4
	show_stack+0x24/0x30
	dump_stack+0xe0/0x138
	___might_sleep+0x2a8/0x2c8
	__might_sleep+0x78/0x10c
	dput+0x7c/0x750
	block_dump___mark_inode_dirty+0x120/0x17c
	__mark_inode_dirty+0x344/0x11f0
	f2fs_mark_inode_dirty_sync+0x40/0x50
	__insert_extent_tree+0x2e0/0x2f4
	f2fs_update_extent_tree_range+0xcf4/0xde8
	f2fs_update_extent_cache+0x114/0x12c
	f2fs_update_data_blkaddr+0x40/0x50
	write_data_page+0x150/0x314
	do_write_data_page+0x648/0x2318
	__write_data_page+0xdb4/0x1640
	f2fs_write_cache_pages+0x768/0xafc
	__f2fs_write_data_pages+0x590/0x1218
	f2fs_write_data_pages+0x64/0x74
	do_writepages+0x74/0xe4
	__writeback_single_inode+0xdc/0x15f0
	writeback_sb_inodes+0x574/0xc98
	__writeback_inodes_wb+0x190/0x204
	wb_writeback+0x730/0xf14
	wb_check_old_data_flush+0x1bc/0x1c8
	wb_workfn+0x554/0xf74
	process_one_work+0x440/0x118c
	worker_thread+0xac/0x974
	kthread+0x1a0/0x1c8
	ret_from_fork+0x10/0x1c

Signed-off-by: Zhikang Zhang <zhangzhikang1@huawei.com>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 fs/f2fs/extent_cache.c | 51 ++++++++++++++++++++++++++----------------
 fs/f2fs/f2fs.h         |  7 +++---
 2 files changed, 36 insertions(+), 22 deletions(-)

diff --git a/fs/f2fs/extent_cache.c b/fs/f2fs/extent_cache.c
index 231b77ef5a53..a70cd2580eae 100644
--- a/fs/f2fs/extent_cache.c
+++ b/fs/f2fs/extent_cache.c
@@ -308,14 +308,13 @@ static unsigned int __free_extent_tree(struct f2fs_sb_info *sbi,
 	return count - atomic_read(&et->node_cnt);
 }
 
-static void __drop_largest_extent(struct inode *inode,
+static void __drop_largest_extent(struct extent_tree *et,
 					pgoff_t fofs, unsigned int len)
 {
-	struct extent_info *largest = &F2FS_I(inode)->extent_tree->largest;
-
-	if (fofs < largest->fofs + largest->len && fofs + len > largest->fofs) {
-		largest->len = 0;
-		f2fs_mark_inode_dirty_sync(inode, true);
+	if (fofs < et->largest.fofs + et->largest.len &&
+			fofs + len > et->largest.fofs) {
+		et->largest.len = 0;
+		et->largest_updated = true;
 	}
 }
 
@@ -416,12 +415,11 @@ static bool f2fs_lookup_extent_tree(struct inode *inode, pgoff_t pgofs,
 	return ret;
 }
 
-static struct extent_node *__try_merge_extent_node(struct inode *inode,
+static struct extent_node *__try_merge_extent_node(struct f2fs_sb_info *sbi,
 				struct extent_tree *et, struct extent_info *ei,
 				struct extent_node *prev_ex,
 				struct extent_node *next_ex)
 {
-	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
 	struct extent_node *en = NULL;
 
 	if (prev_ex && __is_back_mergeable(ei, &prev_ex->ei)) {
@@ -443,7 +441,7 @@ static struct extent_node *__try_merge_extent_node(struct inode *inode,
 	if (!en)
 		return NULL;
 
-	__try_update_largest_extent(inode, et, en);
+	__try_update_largest_extent(et, en);
 
 	spin_lock(&sbi->extent_lock);
 	if (!list_empty(&en->list)) {
@@ -454,12 +452,11 @@ static struct extent_node *__try_merge_extent_node(struct inode *inode,
 	return en;
 }
 
-static struct extent_node *__insert_extent_tree(struct inode *inode,
+static struct extent_node *__insert_extent_tree(struct f2fs_sb_info *sbi,
 				struct extent_tree *et, struct extent_info *ei,
 				struct rb_node **insert_p,
 				struct rb_node *insert_parent)
 {
-	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
 	struct rb_node **p;
 	struct rb_node *parent = NULL;
 	struct extent_node *en = NULL;
@@ -476,7 +473,7 @@ static struct extent_node *__insert_extent_tree(struct inode *inode,
 	if (!en)
 		return NULL;
 
-	__try_update_largest_extent(inode, et, en);
+	__try_update_largest_extent(et, en);
 
 	/* update in global extent list */
 	spin_lock(&sbi->extent_lock);
@@ -497,6 +494,7 @@ static void f2fs_update_extent_tree_range(struct inode *inode,
 	struct rb_node **insert_p = NULL, *insert_parent = NULL;
 	unsigned int end = fofs + len;
 	unsigned int pos = (unsigned int)fofs;
+	bool updated = false;
 
 	if (!et)
 		return;
@@ -517,7 +515,7 @@ static void f2fs_update_extent_tree_range(struct inode *inode,
 	 * drop largest extent before lookup, in case it's already
 	 * been shrunk from extent tree
 	 */
-	__drop_largest_extent(inode, fofs, len);
+	__drop_largest_extent(et, fofs, len);
 
 	/* 1. lookup first extent node in range [fofs, fofs + len - 1] */
 	en = (struct extent_node *)f2fs_lookup_rb_tree_ret(&et->root,
@@ -550,7 +548,7 @@ static void f2fs_update_extent_tree_range(struct inode *inode,
 				set_extent_info(&ei, end,
 						end - dei.fofs + dei.blk,
 						org_end - end);
-				en1 = __insert_extent_tree(inode, et, &ei,
+				en1 = __insert_extent_tree(sbi, et, &ei,
 							NULL, NULL);
 				next_en = en1;
 			} else {
@@ -570,7 +568,7 @@ static void f2fs_update_extent_tree_range(struct inode *inode,
 		}
 
 		if (parts)
-			__try_update_largest_extent(inode, et, en);
+			__try_update_largest_extent(et, en);
 		else
 			__release_extent_node(sbi, et, en);
 
@@ -590,15 +588,16 @@ static void f2fs_update_extent_tree_range(struct inode *inode,
 	if (blkaddr) {
 
 		set_extent_info(&ei, fofs, blkaddr, len);
-		if (!__try_merge_extent_node(inode, et, &ei, prev_en, next_en))
-			__insert_extent_tree(inode, et, &ei,
+		if (!__try_merge_extent_node(sbi, et, &ei, prev_en, next_en))
+			__insert_extent_tree(sbi, et, &ei,
 						insert_p, insert_parent);
 
 		/* give up extent_cache, if split and small updates happen */
 		if (dei.len >= 1 &&
 				prev.len < F2FS_MIN_EXTENT_LEN &&
 				et->largest.len < F2FS_MIN_EXTENT_LEN) {
-			__drop_largest_extent(inode, 0, UINT_MAX);
+			et->largest.len = 0;
+			et->largest_updated = true;
 			set_inode_flag(inode, FI_NO_EXTENT);
 		}
 	}
@@ -606,7 +605,15 @@ static void f2fs_update_extent_tree_range(struct inode *inode,
 	if (is_inode_flag_set(inode, FI_NO_EXTENT))
 		__free_extent_tree(sbi, et);
 
+	if (et->largest_updated) {
+		et->largest_updated = false;
+		updated = true;
+	}
+
 	write_unlock(&et->lock);
+
+	if (updated)
+		f2fs_mark_inode_dirty_sync(inode, true);
 }
 
 unsigned int f2fs_shrink_extent_tree(struct f2fs_sb_info *sbi, int nr_shrink)
@@ -705,6 +712,7 @@ void f2fs_drop_extent_tree(struct inode *inode)
 {
 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
 	struct extent_tree *et = F2FS_I(inode)->extent_tree;
+	bool updated = false;
 
 	if (!f2fs_may_extent_tree(inode))
 		return;
@@ -713,8 +721,13 @@ void f2fs_drop_extent_tree(struct inode *inode)
 
 	write_lock(&et->lock);
 	__free_extent_tree(sbi, et);
-	__drop_largest_extent(inode, 0, UINT_MAX);
+	if (et->largest.len) {
+		et->largest.len = 0;
+		updated = true;
+	}
 	write_unlock(&et->lock);
+	if (updated)
+		f2fs_mark_inode_dirty_sync(inode, true);
 }
 
 void f2fs_destroy_extent_tree(struct inode *inode)
diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
index b6f2dc8163e1..181aade161e8 100644
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
@@ -556,6 +556,7 @@ struct extent_tree {
 	struct list_head list;		/* to be used by sbi->zombie_list */
 	rwlock_t lock;			/* protect extent info rb-tree */
 	atomic_t node_cnt;		/* # of extent node in rb-tree*/
+	bool largest_updated;		/* largest extent updated */
 };
 
 /*
@@ -736,12 +737,12 @@ static inline bool __is_front_mergeable(struct extent_info *cur,
 }
 
 extern void f2fs_mark_inode_dirty_sync(struct inode *inode, bool sync);
-static inline void __try_update_largest_extent(struct inode *inode,
-			struct extent_tree *et, struct extent_node *en)
+static inline void __try_update_largest_extent(struct extent_tree *et,
+						struct extent_node *en)
 {
 	if (en->ei.len > et->largest.len) {
 		et->largest = en->ei;
-		f2fs_mark_inode_dirty_sync(inode, true);
+		et->largest_updated = true;
 	}
 }
 
-- 
2.17.1


  parent reply	other threads:[~2018-10-31 23:29 UTC|newest]

Thread overview: 126+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-31 23:05 [PATCH AUTOSEL 4.18 001/126] net: socionext: Reset tx queue in ndo_stop Sasha Levin
2018-10-31 23:05 ` [PATCH AUTOSEL 4.18 002/126] net: ethernet: ti: cpsw: unsync mcast entries while switch promisc mode Sasha Levin
2018-10-31 23:05 ` [PATCH AUTOSEL 4.18 003/126] locking/lockdep: Fix debug_locks off performance problem Sasha Levin
2018-10-31 23:05 ` [PATCH AUTOSEL 4.18 004/126] netfilter: xt_nat: fix DNAT target for shifted portmap ranges Sasha Levin
2018-10-31 23:05 ` [PATCH AUTOSEL 4.18 005/126] ataflop: fix error handling during setup Sasha Levin
2018-10-31 23:05 ` [PATCH AUTOSEL 4.18 006/126] swim: fix cleanup on setup error Sasha Levin
2018-10-31 23:05 ` [PATCH AUTOSEL 4.18 007/126] arm64: cpufeature: ctr: Fix cpu capability check for late CPUs Sasha Levin
2018-10-31 23:05 ` [PATCH AUTOSEL 4.18 008/126] nfp: devlink port split support for 1x100G CXP NIC Sasha Levin
2018-10-31 23:05 ` [PATCH AUTOSEL 4.18 009/126] tun: Consistently configure generic netdev params via rtnetlink Sasha Levin
2018-10-31 23:05 ` [PATCH AUTOSEL 4.18 010/126] s390/sthyi: Fix machine name validity indication Sasha Levin
2018-10-31 23:05 ` [PATCH AUTOSEL 4.18 011/126] hwmon: (pwm-fan) Set fan speed to 0 on suspend Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 012/126] lightnvm: pblk: fix race on sysfs line state Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 013/126] lightnvm: pblk: fix two sleep-in-atomic-context bugs Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 014/126] lightnvm: pblk: fix race condition on metadata I/O Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 015/126] spi: spi-ep93xx: Use dma_data_direction for ep93xx_spi_dma_{finish,prepare} Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 016/126] perf tools: Free temporary 'sys' string in read_event_files() Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 017/126] perf tools: Cleanup trace-event-info 'tdata' leak Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 018/126] perf strbuf: Match va_{add,copy} with va_end Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 019/126] cpupower: Fix coredump on VMWare Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 020/126] bcache: Populate writeback_rate_minimum attribute Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 021/126] mmc: sdhci-pci-o2micro: Add quirk for O2 Micro dev 0x8620 rev 0x01 Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 022/126] sdhci: acpi: add free_slot callback Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 023/126] mtd: rawnand: denali: set SPARE_AREA_SKIP_BYTES register to 8 if unset Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 024/126] iwlwifi: pcie: avoid empty free RB queue Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 025/126] iwlwifi: mvm: clear HW_RESTART_REQUESTED when stopping the interface Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 026/126] iwlwifi: mvm: check for n_profiles validity in EWRD ACPI Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 027/126] x86/olpc: Indicate that legacy PC XO-1 platform should not register RTC Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 028/126] nvmet-rdma: use a private workqueue for delete Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 029/126] ACPI/PPTT: Handle architecturally unknown cache types Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 030/126] ACPI / PM: LPIT: Register sysfs attributes based on FADT Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 031/126] ACPI / processor: Fix the return value of acpi_processor_ids_walk() Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 032/126] cpufreq: dt: Try freeing static OPPs only if we have added them Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 033/126] x86/intel_rdt: Show missing resctrl mount options Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 034/126] mtd: rawnand: atmel: Fix potential NULL pointer dereference Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 035/126] regulator: fixed: Default enable high on DT regulators Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 036/126] signal: Introduce COMPAT_SIGMINSTKSZ for use in compat_sys_sigaltstack Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 037/126] ice: fix changing of ring descriptor size (ethtool -G) Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 038/126] ice: update fw version check logic Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 039/126] net: hns3: Fix for packet buffer setting bug Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 040/126] Bluetooth: btbcm: Add entry for BCM4335C0 UART bluetooth Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 041/126] x86: boot: Fix EFI stub alignment Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 042/126] net: hns3: Add nic state check before calling netif_tx_wake_queue Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 043/126] net: hns3: Fix ets validate issue Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 044/126] pinctrl: sunxi: fix 'pctrl->functions' allocation in sunxi_pinctrl_build_state Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 045/126] pinctrl: qcom: spmi-mpp: Fix err handling of pmic_mpp_set_mux Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 046/126] brcmfmac: fix for proper support of 160MHz bandwidth Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 047/126] net: hns3: Check hdev state when getting link status Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 048/126] net: hns3: Set STATE_DOWN bit of hdev state when stopping net Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 049/126] net: phy: phylink: ensure the carrier is off when starting phylink Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 050/126] block, bfq: correctly charge and reset entity service in all cases Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 051/126] arm64: entry: Allow handling of undefined instructions from EL1 Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 052/126] kprobes: Return error if we fail to reuse kprobe instead of BUG_ON() Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 053/126] spi: gpio: No MISO does not imply no RX Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 054/126] ACPI / LPSS: Add alternative ACPI HIDs for Cherry Trail DMA controllers Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 055/126] pinctrl: qcom: spmi-mpp: Fix drive strength setting Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 056/126] bpf/verifier: fix verifier instability Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 057/126] failover: Add missing check to validate 'slave_dev' in net_failover_slave_unregister Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 058/126] perf tests: Fix record+probe_libc_inet_pton.sh without ping's debuginfo Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 059/126] pinctrl: spmi-mpp: Fix pmic_mpp_config_get() to be compliant Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 060/126] pinctrl: ssbi-gpio: Fix pm8xxx_pin_config_get() " Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 061/126] net: hns3: Preserve vlan 0 in hardware table Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 062/126] net: hns3: Fix ping exited problem when doing lp selftest Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 063/126] net: hns3: Fix for vf vlan delete failed problem Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 064/126] net: dsa: mv88e6xxx: Fix writing to a PHY page Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 065/126] rsi: fix memory alignment issue in ARM32 platforms Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 066/126] iwlwifi: mvm: fix BAR seq ctrl reporting Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 067/126] gpio: brcmstb: allow 0 width GPIO banks Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 068/126] ixgbe: disallow IPsec Tx offload when in SR-IOV mode Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 069/126] ixgbevf: VF2VF TCP RSS Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 070/126] ath10k: schedule hardware restart if WMI command times out Sasha Levin
2018-10-31 23:06 ` [PATCH AUTOSEL 4.18 071/126] libata: Apply NOLPM quirk for SAMSUNG MZ7TD256HAFV-000L9 Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 072/126] thermal: rcar_thermal: Prevent doing work after unbind Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 073/126] thermal: da9062/61: Prevent hardware access during system suspend Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 074/126] cgroup, netclassid: add a preemption point to write_classid Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 075/126] net: stmmac: dwmac-sun8i: fix OF child-node lookup Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 076/126] f2fs: fix to account IO correctly for cgroup writeback Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 077/126] MD: Memory leak when flush bio size is zero Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 078/126] md: fix memleak for mempool Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 079/126] scsi: esp_scsi: Track residual for PIO transfers Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 080/126] scsi: ufs: Schedule clk gating work on correct queue Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 081/126] UAPI: ndctl: Fix g++-unsupported initialisation in headers Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 082/126] KVM: nVMX: Clear reserved bits of #DB exit qualification Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 083/126] scsi: megaraid_sas: fix a missing-check bug Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 084/126] RDMA/core: Do not expose unsupported counters Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 085/126] IB/ipoib: Clear IPCB before icmp_send Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 086/126] RDMA/bnxt_re: Avoid accessing nq->bar_reg_iomem in failure case Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 087/126] RDMA/bnxt_re: Fix recursive lock warning in debug kernel Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 088/126] usb: host: ohci-at91: fix request of irq for optional gpio Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 089/126] PCI: mediatek: Fix mtk_pcie_find_port() endpoint/port matching logic Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 090/126] PCI: cadence: Use AXI region 0 to signal interrupts from EP Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 091/126] usb: typec: tcpm: Report back negotiated PPS voltage and current Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 092/126] tpm: suppress transmit cmd error logs when TPM 1.2 is disabled/deactivated Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 093/126] f2fs: clear PageError on the read path Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 094/126] Drivers: hv: vmbus: Use cpumask_var_t for on-stack cpu mask Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 095/126] Drivers: hv: kvp: Fix two "this statement may fall through" warnings Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 096/126] VMCI: Resource wildcard match fixed Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 097/126] PCI / ACPI: Enable wake automatically for power managed bridges Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 098/126] xprtrdma: Reset credit grant properly after a disconnect Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 099/126] irqchip/pdc: Setup all edge interrupts as rising edge at GIC Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 100/126] usb: dwc2: fix a race with external vbus supply Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 101/126] usb: gadget: udc: atmel: handle at91sam9rl PMC Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 102/126] ext4: fix argument checking in EXT4_IOC_MOVE_EXT Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 103/126] MD: fix invalid stored role for a disk Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 104/126] nvmem: check the return value of nvmem_add_cells() Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 105/126] xhci: Avoid USB autosuspend when resuming USB2 ports Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 106/126] f2fs: fix to recover inode's crtime during POR Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 107/126] f2fs: fix to recover inode's i_flags " Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 108/126] PCI/MSI: Warn and return error if driver enables MSI/MSI-X twice Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 109/126] coresight: etb10: Fix handling of perf mode Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 110/126] PCI: dwc: pci-dra7xx: Enable errata i870 for both EP and RC mode Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 111/126] crypto: caam - fix implicit casts in endianness helpers Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 112/126] usb: chipidea: Prevent unbalanced IRQ disable Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 113/126] Smack: ptrace capability use fixes Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 114/126] driver/dma/ioat: Call del_timer_sync() without holding prep_lock Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 115/126] firmware: coreboot: Unmap ioregion after device population Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 116/126] IB/mlx5: Allow transition of DCI QP to reset Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 117/126] uio: ensure class is registered before devices Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 118/126] scsi: lpfc: Correct soft lockup when running mds diagnostics Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 119/126] scsi: lpfc: Correct race with abort on completion path Sasha Levin
2018-10-31 23:07 ` Sasha Levin [this message]
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 121/126] f2fs: report error if quota off error during umount Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 122/126] signal: Always deliver the kernel's SIGKILL and SIGSTOP to a pid namespace init Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 123/126] mfd: menelaus: Fix possible race condition and leak Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 124/126] dmaengine: dma-jz4780: Return error if not probed from DT Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 125/126] IB/rxe: fix for duplicate request processing and ack psns Sasha Levin
2018-10-31 23:07 ` [PATCH AUTOSEL 4.18 126/126] ALSA: hda: Check the non-cached stream buffers more explicitly 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=20181031230754.29029-120-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=jaegeuk@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=zhangzhikang1@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.