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
next prev 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox