mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Sasha Levin <Alexander.Levin@microsoft.com>
To: "stable@vger.kernel.org" <stable@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Cc: Roy Shterman <roys@lightbitslabs.com>,
	Sagi Grimberg <sagi@grimberg.me>, Christoph Hellwig <hch@lst.de>,
	Sasha Levin <Alexander.Levin@microsoft.com>
Subject: [PATCH AUTOSEL for 4.15 004/189] nvme: host delete_work and reset_work on separate workqueues
Date: Mon, 9 Apr 2018 00:16:46 +0000	[thread overview]
Message-ID: <20180409001637.162453-4-alexander.levin@microsoft.com> (raw)
In-Reply-To: <20180409001637.162453-1-alexander.levin@microsoft.com>

From: Roy Shterman <roys@lightbitslabs.com>

[ Upstream commit b227c59b9b5b8ae52639c8980af853d2f654f90a ]

We need to ensure that delete_work will be hosted on a different
workqueue than all the works we flush or cancel from it.
Otherwise we may hit a circular dependency warning [1].

Also, given that delete_work flushes reset_work, host reset_work
on nvme_reset_wq and delete_work on nvme_delete_wq. In addition,
fix the flushing in the individual drivers to flush nvme_delete_wq
when draining queued deletes.

[1]:
[  178.491942] =============================================
[  178.492718] [ INFO: possible recursive locking detected ]
[  178.493495] 4.9.0-rc4-c844263313a8-lb #3 Tainted: G           OE
[  178.494382] ---------------------------------------------
[  178.495160] kworker/5:1/135 is trying to acquire lock:
[  178.495894]  (
[  178.496120] "nvme-wq"
[  178.496471] ){++++.+}
[  178.496599] , at:
[  178.496921] [<ffffffffa70ac206>] flush_work+0x1a6/0x2d0
[  178.497670]
               but task is already holding lock:
[  178.498499]  (
[  178.498724] "nvme-wq"
[  178.499074] ){++++.+}
[  178.499202] , at:
[  178.499520] [<ffffffffa70ad6c2>] process_one_work+0x162/0x6a0
[  178.500343]
               other info that might help us debug this:
[  178.501269]  Possible unsafe locking scenario:

[  178.502113]        CPU0
[  178.502472]        ----
[  178.502829]   lock(
[  178.503115] "nvme-wq"
[  178.503467] );
[  178.503716]   lock(
[  178.504001] "nvme-wq"
[  178.504353] );
[  178.504601]
                *** DEADLOCK ***

[  178.505441]  May be due to missing lock nesting notation

[  178.506453] 2 locks held by kworker/5:1/135:
[  178.507068]  #0:
[  178.507330]  (
[  178.507598] "nvme-wq"
[  178.507726] ){++++.+}
[  178.508079] , at:
[  178.508173] [<ffffffffa70ad6c2>] process_one_work+0x162/0x6a0
[  178.509004]  #1:
[  178.509265]  (
[  178.509532] (&ctrl->delete_work)
[  178.509795] ){+.+.+.}
[  178.510145] , at:
[  178.510239] [<ffffffffa70ad6c2>] process_one_work+0x162/0x6a0
[  178.511070]
               stack backtrace:
:
[  178.511693] CPU: 5 PID: 135 Comm: kworker/5:1 Tainted: G           OE   4.9.0-rc4-c844263313a8-lb #3
[  178.512974] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.1-1ubuntu1 04/01/2014
[  178.514247] Workqueue: nvme-wq nvme_del_ctrl_work [nvme_tcp]
[  178.515071]  ffffc2668175bae0 ffffffffa7450823 ffffffffa88abd80 ffffffffa88abd80
[  178.516195]  ffffc2668175bb98 ffffffffa70eb012 ffffffffa8d8d90d ffff9c472e9ea700
[  178.517318]  ffff9c472e9ea700 ffff9c4700000000 ffff9c4700007200 ab83be61bec0d50e
[  178.518443] Call Trace:
[  178.518807]  [<ffffffffa7450823>] dump_stack+0x85/0xc2
[  178.519542]  [<ffffffffa70eb012>] __lock_acquire+0x17d2/0x18f0
[  178.520377]  [<ffffffffa75839a7>] ? serial8250_console_putchar+0x27/0x30
[  178.521330]  [<ffffffffa7583980>] ? wait_for_xmitr+0xa0/0xa0
[  178.522174]  [<ffffffffa70ac1eb>] ? flush_work+0x18b/0x2d0
[  178.522975]  [<ffffffffa70eb7cb>] lock_acquire+0x11b/0x220
[  178.523753]  [<ffffffffa70ac206>] ? flush_work+0x1a6/0x2d0
[  178.524535]  [<ffffffffa70ac229>] flush_work+0x1c9/0x2d0
[  178.525291]  [<ffffffffa70ac206>] ? flush_work+0x1a6/0x2d0
[  178.526077]  [<ffffffffa70a9cf0>] ? flush_workqueue_prep_pwqs+0x220/0x220
[  178.527040]  [<ffffffffa70ae7cf>] __cancel_work_timer+0x10f/0x1d0
[  178.527907]  [<ffffffffa70fecb9>] ? vprintk_default+0x29/0x40
[  178.528726]  [<ffffffffa71cb507>] ? printk+0x48/0x50
[  178.529434]  [<ffffffffa70ae8c3>] cancel_delayed_work_sync+0x13/0x20
[  178.530381]  [<ffffffffc042100b>] nvme_stop_ctrl+0x5b/0x70 [nvme_core]
[  178.531314]  [<ffffffffc0403dcc>] nvme_del_ctrl_work+0x2c/0x50 [nvme_tcp]
[  178.532271]  [<ffffffffa70ad741>] process_one_work+0x1e1/0x6a0
[  178.533101]  [<ffffffffa70ad6c2>] ? process_one_work+0x162/0x6a0
[  178.533954]  [<ffffffffa70adc4e>] worker_thread+0x4e/0x490
[  178.534735]  [<ffffffffa70adc00>] ? process_one_work+0x6a0/0x6a0
[  178.535588]  [<ffffffffa70adc00>] ? process_one_work+0x6a0/0x6a0
[  178.536441]  [<ffffffffa70b48cf>] kthread+0xff/0x120
[  178.537149]  [<ffffffffa70b47d0>] ? kthread_park+0x60/0x60
[  178.538094]  [<ffffffffa70b47d0>] ? kthread_park+0x60/0x60
[  178.538900]  [<ffffffffa78e332a>] ret_from_fork+0x2a/0x40

Signed-off-by: Roy Shterman <roys@lightbitslabs.com>
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
---
 drivers/nvme/host/core.c   | 44 +++++++++++++++++++++++++++++++++++++++-----
 drivers/nvme/host/nvme.h   |  2 ++
 drivers/nvme/host/rdma.c   |  2 +-
 drivers/nvme/target/loop.c |  2 +-
 4 files changed, 43 insertions(+), 7 deletions(-)

diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index 935593032123..93a4fa053e7f 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -65,9 +65,26 @@ static bool streams;
 module_param(streams, bool, 0644);
 MODULE_PARM_DESC(streams, "turn on support for Streams write directives");
 
+/*
+ * nvme_wq - hosts nvme related works that are not reset or delete
+ * nvme_reset_wq - hosts nvme reset works
+ * nvme_delete_wq - hosts nvme delete works
+ *
+ * nvme_wq will host works such are scan, aen handling, fw activation,
+ * keep-alive error recovery, periodic reconnects etc. nvme_reset_wq
+ * runs reset works which also flush works hosted on nvme_wq for
+ * serialization purposes. nvme_delete_wq host controller deletion
+ * works which flush reset works for serialization.
+ */
 struct workqueue_struct *nvme_wq;
 EXPORT_SYMBOL_GPL(nvme_wq);
 
+struct workqueue_struct *nvme_reset_wq;
+EXPORT_SYMBOL_GPL(nvme_reset_wq);
+
+struct workqueue_struct *nvme_delete_wq;
+EXPORT_SYMBOL_GPL(nvme_delete_wq);
+
 static DEFINE_IDA(nvme_subsystems_ida);
 static LIST_HEAD(nvme_subsystems);
 static DEFINE_MUTEX(nvme_subsystems_lock);
@@ -89,7 +106,7 @@ int nvme_reset_ctrl(struct nvme_ctrl *ctrl)
 {
 	if (!nvme_change_ctrl_state(ctrl, NVME_CTRL_RESETTING))
 		return -EBUSY;
-	if (!queue_work(nvme_wq, &ctrl->reset_work))
+	if (!queue_work(nvme_reset_wq, &ctrl->reset_work))
 		return -EBUSY;
 	return 0;
 }
@@ -122,7 +139,7 @@ int nvme_delete_ctrl(struct nvme_ctrl *ctrl)
 {
 	if (!nvme_change_ctrl_state(ctrl, NVME_CTRL_DELETING))
 		return -EBUSY;
-	if (!queue_work(nvme_wq, &ctrl->delete_work))
+	if (!queue_work(nvme_delete_wq, &ctrl->delete_work))
 		return -EBUSY;
 	return 0;
 }
@@ -3491,16 +3508,26 @@ EXPORT_SYMBOL_GPL(nvme_reinit_tagset);
 
 int __init nvme_core_init(void)
 {
-	int result;
+	int result = -ENOMEM;
 
 	nvme_wq = alloc_workqueue("nvme-wq",
 			WQ_UNBOUND | WQ_MEM_RECLAIM | WQ_SYSFS, 0);
 	if (!nvme_wq)
-		return -ENOMEM;
+		goto out;
+
+	nvme_reset_wq = alloc_workqueue("nvme-reset-wq",
+			WQ_UNBOUND | WQ_MEM_RECLAIM | WQ_SYSFS, 0);
+	if (!nvme_reset_wq)
+		goto destroy_wq;
+
+	nvme_delete_wq = alloc_workqueue("nvme-delete-wq",
+			WQ_UNBOUND | WQ_MEM_RECLAIM | WQ_SYSFS, 0);
+	if (!nvme_delete_wq)
+		goto destroy_reset_wq;
 
 	result = alloc_chrdev_region(&nvme_chr_devt, 0, NVME_MINORS, "nvme");
 	if (result < 0)
-		goto destroy_wq;
+		goto destroy_delete_wq;
 
 	nvme_class = class_create(THIS_MODULE, "nvme");
 	if (IS_ERR(nvme_class)) {
@@ -3519,8 +3546,13 @@ destroy_class:
 	class_destroy(nvme_class);
 unregister_chrdev:
 	unregister_chrdev_region(nvme_chr_devt, NVME_MINORS);
+destroy_delete_wq:
+	destroy_workqueue(nvme_delete_wq);
+destroy_reset_wq:
+	destroy_workqueue(nvme_reset_wq);
 destroy_wq:
 	destroy_workqueue(nvme_wq);
+out:
 	return result;
 }
 
@@ -3530,6 +3562,8 @@ void nvme_core_exit(void)
 	class_destroy(nvme_subsys_class);
 	class_destroy(nvme_class);
 	unregister_chrdev_region(nvme_chr_devt, NVME_MINORS);
+	destroy_workqueue(nvme_delete_wq);
+	destroy_workqueue(nvme_reset_wq);
 	destroy_workqueue(nvme_wq);
 }
 
diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h
index 55c49a1aa231..d320df9ab588 100644
--- a/drivers/nvme/host/nvme.h
+++ b/drivers/nvme/host/nvme.h
@@ -32,6 +32,8 @@ extern unsigned int admin_timeout;
 #define NVME_KATO_GRACE		10
 
 extern struct workqueue_struct *nvme_wq;
+extern struct workqueue_struct *nvme_reset_wq;
+extern struct workqueue_struct *nvme_delete_wq;
 
 enum {
 	NVME_NS_LBA		= 0,
diff --git a/drivers/nvme/host/rdma.c b/drivers/nvme/host/rdma.c
index 2a0bba7f50cf..145aa97067d4 100644
--- a/drivers/nvme/host/rdma.c
+++ b/drivers/nvme/host/rdma.c
@@ -2040,7 +2040,7 @@ static void nvme_rdma_remove_one(struct ib_device *ib_device, void *client_data)
 	}
 	mutex_unlock(&nvme_rdma_ctrl_mutex);
 
-	flush_workqueue(nvme_wq);
+	flush_workqueue(nvme_delete_wq);
 }
 
 static struct ib_client nvme_rdma_ib_client = {
diff --git a/drivers/nvme/target/loop.c b/drivers/nvme/target/loop.c
index 1e21b286f299..5d8054f9a412 100644
--- a/drivers/nvme/target/loop.c
+++ b/drivers/nvme/target/loop.c
@@ -716,7 +716,7 @@ static void __exit nvme_loop_cleanup_module(void)
 		nvme_delete_ctrl(&ctrl->ctrl);
 	mutex_unlock(&nvme_loop_ctrl_mutex);
 
-	flush_workqueue(nvme_wq);
+	flush_workqueue(nvme_delete_wq);
 }
 
 module_init(nvme_loop_init_module);
-- 
2.15.1

  parent reply	other threads:[~2018-04-09  4:13 UTC|newest]

Thread overview: 197+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-09  0:16 [PATCH AUTOSEL for 4.15 001/189] firewire-ohci: work around oversized DMA reads on JMicron controllers Sasha Levin
2018-04-09  0:16 ` [PATCH AUTOSEL for 4.15 002/189] x86/tsc: Allow TSC calibration without PIT Sasha Levin
2018-04-09  0:16 ` [PATCH AUTOSEL for 4.15 003/189] NFSv4: always set NFS_LOCK_LOST when a lock is lost Sasha Levin
2018-04-09  0:16 ` Sasha Levin [this message]
2018-04-09  0:16 ` [PATCH AUTOSEL for 4.15 005/189] hwmon: (ina2xx) Fix access to uninitialized mutex Sasha Levin
2018-04-09  0:16 ` [PATCH AUTOSEL for 4.15 006/189] ACPI / LPSS: Do not instiate platform_dev for devs without MMIO resources Sasha Levin
2018-04-09  0:16 ` [PATCH AUTOSEL for 4.15 008/189] ALSA: hda - Use IS_REACHABLE() for dependency on input Sasha Levin
2018-04-09  0:16 ` [PATCH AUTOSEL for 4.15 007/189] tipc: fix a potental access after delete in tipc_sk_join() Sasha Levin
2018-04-09  0:16 ` [PATCH AUTOSEL for 4.15 009/189] ASoC: au1x: Fix timeout tests in au1xac97c_ac97_read() Sasha Levin
2018-04-09  0:16 ` [PATCH AUTOSEL for 4.15 010/189] kvm: x86: fix KVM_XEN_HVM_CONFIG ioctl Sasha Levin
2018-04-09  0:16 ` [PATCH AUTOSEL for 4.15 011/189] RDMA/core: Clarify rdma_ah_find_type Sasha Levin
2018-04-09  0:16 ` [PATCH AUTOSEL for 4.15 012/189] KVM: PPC: Book3S HV: Enable migration of decrementer register Sasha Levin
2018-04-09  0:16 ` [PATCH AUTOSEL for 4.15 013/189] netfilter: ipv6: nf_defrag: Pass on packets to stack per RFC2460 Sasha Levin
2018-04-09  0:16 ` [PATCH AUTOSEL for 4.15 014/189] tracing/hrtimer: Fix tracing bugs by taking all clock bases and modes into account Sasha Levin
2018-04-09  0:16 ` [PATCH AUTOSEL for 4.15 015/189] KVM: s390: use created_vcpus in more places Sasha Levin
2018-04-09  0:16 ` [PATCH AUTOSEL for 4.15 016/189] platform/x86: dell-laptop: Filter out spurious keyboard backlight change events Sasha Levin
2018-04-09  0:16 ` [PATCH AUTOSEL for 4.15 017/189] xprtrdma: Fix backchannel allocation of extra rpcrdma_reps Sasha Levin
2018-04-09  0:16 ` [PATCH AUTOSEL for 4.15 018/189] xprtrdma: Eliminate unnecessary lock cycle in xprt_rdma_send_request Sasha Levin
2018-04-09  0:16 ` [PATCH AUTOSEL for 4.15 019/189] printk: Add console owner and waiter logic to load balance console writes Sasha Levin
2018-04-09  8:15   ` Petr Mladek
2018-04-15 14:34     ` Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 020/189] selftest: ftrace: Fix to pick text symbols for kprobes Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 021/189] PCI: Add function 1 DMA alias quirk for Marvell 9128 Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 022/189] Input: psmouse - fix Synaptics detection when protocol is disabled Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 023/189] libbpf: Makefile set specified permission mode Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 024/189] Input: synaptics - reset the ABS_X/Y fuzz after initializing MT axes Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 025/189] i40iw: Free IEQ resources Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 026/189] i40iw: Zero-out consumer key on allocate stag for FMR Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 027/189] scsi: qla2xxx: Fix warning in qla2x00_async_iocb_timeout() Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 028/189] perf unwind: Do not look just at the global callchain_param.record_mode Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 029/189] tools lib traceevent: Simplify pointer print logic and fix %pF Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 030/189] perf callchain: Fix attr.sample_max_stack setting Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 032/189] perf record: Fix failed memory allocation for get_cpuid_str Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 031/189] tools lib traceevent: Fix get_field_str() for dynamic strings Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 033/189] iommu/exynos: Don't unconditionally steal bus ops Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 034/189] powerpc: System reset avoid interleaving oops using die synchronisation Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 035/189] iommu/vt-d: Use domain instead of cache fetching Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 036/189] dm thin: fix documentation relative to low water mark threshold Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 037/189] dm mpath: return DM_MAPIO_REQUEUE on blk-mq rq allocation failure Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 039/189] nvme-fc: fix rogue admin cmds stalling teardown Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 040/189] ubifs: Fix uninitialized variable in search_dh_cookie() Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 041/189] net: stmmac: dwmac-meson8b: fix setting the RGMII TX clock on Meson8b Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 042/189] net: stmmac: dwmac-meson8b: propagate rate changes to the parent clock Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 043/189] spi: a3700: Clear DATA_OUT when performing a read Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 044/189] ASoC: bcm2835: fix hw_params error when device is in prepared state Sasha Levin
2018-04-09  9:27   ` Mark Brown
2018-04-15 14:35     ` Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 045/189] IB/cq: Don't force IB_POLL_DIRECT poll context for ib_process_cq_direct Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 046/189] nfs: Do not convert nfs_idmap_cache_timeout to jiffies Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 047/189] MIPS: Fix clean of vmlinuz.{32,ecoff,bin,srec} Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 048/189] clk: ingenic: Fix recalc_rate for clocks with fixed divider Sasha Levin
2018-04-09 20:12   ` James Hogan
2018-04-15 14:39     ` Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 049/189] MIPS: JZ4770: Work around config2 misreporting associativity Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 050/189] PCI: Add dummy pci_irqd_intx_xlate() for CONFIG_PCI=n build Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 051/189] watchdog: sp5100_tco: Fix watchdog disable bit Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 052/189] ARM: 8738/1: Disable CONFIG_DEBUG_VIRTUAL for NOMMU Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 053/189] ARM: 8740/1: NOMMU: Make sure we do not hold stale data in mem[] array Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 054/189] kconfig: Don't leak main menus during parsing Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 055/189] kconfig: Fix automatic menu creation mem leak Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 056/189] kconfig: Fix expr_free() E_NOT leak Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 057/189] powerpc/tm: Fix endianness flip on trap Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 058/189] powerpc/pseries, ps3: panic flush kernel messages before halting system Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 059/189] mac80211_hwsim: fix possible memory leak in hwsim_new_radio_nl() Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 060/189] ipmi/powernv: Fix error return code in ipmi_powernv_probe() Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 061/189] Btrfs: set plug for fsync Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 062/189] btrfs: Fix out of bounds access in btrfs_search_slot Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 063/189] Btrfs: fix scrub to repair raid6 corruption Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 064/189] btrfs: fail mount when sb flag is not in BTRFS_SUPER_FLAG_SUPP Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 065/189] Btrfs: fix unexpected EEXIST from btrfs_get_extent Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 066/189] Btrfs: raid56: fix race between merge_bio and rbio_orig_end_io Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 067/189] RDMA/cma: Check existence of netdevice during port validation Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 068/189] f2fs: avoid hungtask when GC encrypted block if io_bits is set Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 069/189] f2fs: fix to update last_disk_size correctly Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 070/189] scsi: devinfo: fix format of the device list Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 071/189] scsi: fas216: fix sense buffer initialization Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 072/189] Input: stmfts - set IRQ_NOAUTOEN to the irq flag Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 073/189] HID: roccat: prevent an out of bounds read in kovaplus_profile_activated() Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 074/189] nfp: fix error return code in nfp_pci_probe() Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 076/189] selftests/bpf: fix test_dev_cgroup Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 075/189] block: Set BIO_TRACE_COMPLETION on new bio during split Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 077/189] bpf: test_maps: cleanup sockmaps when test ends Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 078/189] i40evf: Don't schedule reset_task when device is being removed Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 079/189] i40evf: ignore link up if not running Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 080/189] i40e: Fix channel addition in reset flow Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 081/189] platform/x86: thinkpad_acpi: suppress warning about palm detection Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 082/189] KVM: s390: vsie: use READ_ONCE to access some SCB fields Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 083/189] KVM: s390: vsie: store guest addresses of satellite blocks in vsie_page Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 084/189] blk-mq-debugfs: don't allow write on attributes with seq_operations set Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 085/189] ASoC: rockchip: Use dummy_dai for rt5514 dsp dailink Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 086/189] igb: Allow to remove administratively set MAC on VFs Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 087/189] igb: Clear TXSTMP when ptp_tx_work() is timeout Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 088/189] fm10k: fix "failed to kill vid" message for VF Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 089/189] Input: edt-ft5x06 - fix error handling for factory mode on non-M06 Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 090/189] x86/hyperv: Stop suppressing X86_FEATURE_PCID Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 091/189] lkdtm: fix handle_irq_event symbol for INT_HW_IRQ_EN Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 092/189] tty: serial: exar: Relocate sleep wake-up handling Sasha Levin
2018-04-09  0:17 ` [PATCH AUTOSEL for 4.15 093/189] device property: Define type of PROPERTY_ENRTY_*() macros Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 094/189] crypto: artpec6 - remove select on non-existing CRYPTO_SHA384 Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 095/189] RDMA/uverbs: Use an unambiguous errno for method not supported Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 096/189] jffs2: Fix use-after-free bug in jffs2_iget()'s error handling path Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 097/189] ixgbe: don't set RXDCTL.RLPML for 82599 Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 098/189] i40e: program fragmented IPv4 filter input set Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 099/189] i40e: fix reported mask for ntuple filters Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 100/189] samples/bpf: Partially fixes the bpf.o build Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 101/189] powerpc/numa: Use ibm,max-associativity-domains to discover possible nodes Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 102/189] powerpc/numa: Ensure nodes initialized for hotplug Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 103/189] RDMA/mlx5: Avoid memory leak in case of XRCD dealloc failure Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 104/189] NTB: ntb_hw_switchtec: Fix peer BAR bug in switchtec_ntb_init_shared_mw Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 105/189] ntb_transport: Fix bug with max_mw_size parameter Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 106/189] ntb_hw_switchtec: Check for alignment of the buffer in mw_set_trans() Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 107/189] gianfar: prevent integer wrapping in the rx handler Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 108/189] ibmvnic: Wait for device response when changing MAC Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 109/189] x86/hyperv: Check for required priviliges in hyperv_init() Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 111/189] netfilter: x_tables: fix pointer leaks to userspace Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 110/189] riscv: disable SUM in the exception handler Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 112/189] tcp_nv: fix potential integer overflow in tcpnv_acked Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 113/189] kvm: Map PFN-type memory regions as writable (if possible) Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 115/189] fs/dax.c: release PMD lock even when there is no PMD support in DAX Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 114/189] x86/kvm/vmx: do not use vm-exit instruction length for fast MMIO when running nested Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 116/189] ocfs2: return -EROFS to mount.ocfs2 if inode block is invalid Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 117/189] ocfs2/acl: use 'ip_xattr_sem' to protect getting extended attribute Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 118/189] ocfs2: return error when we attempt to access a dirty bh in jbd2 Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 119/189] mm/mempolicy: fix the check of nodemask from user Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 120/189] mm/mempolicy: add nodes_empty check in SYSC_migrate_pages Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 121/189] asm-generic: provide generic_pmdp_establish() Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 122/189] sparc64: update pmdp_invalidate() to return old pmd value Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 123/189] mm: thp: use down_read_trylock() in khugepaged to avoid long block Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 124/189] mm: pin address_space before dereferencing it while isolating an LRU page Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 126/189] openvswitch: Remove padding from packet before L3+ conntrack processing Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 127/189] ibmvnic: fix firmware version when no firmware level has been provided by the VIOS server Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 129/189] IB/hfi1: Re-order IRQ cleanup to address driver cleanup race Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 128/189] blk-mq: fix discard merge with scheduler attached Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 130/189] IB/hfi1: Fix for early release of sdma context Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 131/189] IB/hfi1: Fix for potential refcount leak in hfi1_open_file() Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 132/189] IB/hfi1: Show fault stats in both TX and RX directions Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 133/189] IB/ipoib: Fix for potential no-carrier state Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 134/189] IB/core: Map iWarp AH type to undefined in rdma_ah_find_type Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 135/189] drm/nouveau/pmu/fuc: don't use movw directly anymore Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 136/189] s390/eadm: fix CONFIG_BLOCK include dependency Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 137/189] netfilter: x_tables: make allocation less aggressive Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 138/189] netfilter: ipv6: nf_defrag: Kill frag queue on RFC2460 failure Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 139/189] btrfs: Ignore errors from btrfs_qgroup_trace_extent_post Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 140/189] x86/power: Fix swsusp_arch_resume prototype Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 141/189] x86/dumpstack: Avoid uninitlized variable Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 142/189] firmware: dmi_scan: Fix handling of empty DMI strings Sasha Levin
     [not found]   ` <CAPxHnE3uPVC684DzGbdNRsJNsfHN8WF2H7m8GkKz7Z22-V+1yQ@mail.gmail.com>
2018-04-09 12:48     ` Jean Delvare
2018-04-09 13:44       ` Parag Warudkar
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 143/189] ACPI: processor_perflib: Do not send _PPC change notification if not ready Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 144/189] ACPI / bus: Do not call _STA on battery devices with unmet dependencies Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 145/189] ACPI / scan: Use acpi_bus_get_status() to initialize ACPI_TYPE_DEVICE devs Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 146/189] bpf: fix selftests/bpf test_kmod.sh failure when CONFIG_BPF_JIT_ALWAYS_ON=y Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 147/189] MIPS: generic: Fix machine compatible matching Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 148/189] MIPS: TXx9: use IS_BUILTIN() for CONFIG_LEDS_CLASS Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 149/189] perf record: Fix period option handling Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 150/189] MIPS: Generic: Support GIC in EIC mode Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 151/189] perf evsel: Fix period/freq terms setup Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 152/189] xen-netfront: Fix race between device setup and open Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 153/189] xen/grant-table: Use put_page instead of free_page Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 154/189] bpf: sockmap, fix leaking maps with attached but not detached progs Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 155/189] RDS: IB: Fix null pointer issue Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 156/189] arm64: spinlock: Fix theoretical trylock() A-B-A with LSE atomics Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 157/189] proc: fix /proc/*/map_files lookup Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 158/189] PM / domains: Fix up domain-idle-states OF parsing Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 159/189] cifs: silence compiler warnings showing up with gcc-8.0.0 Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 160/189] bcache: properly set task state in bch_writeback_thread() Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 161/189] bcache: fix for allocator and register thread race Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 162/189] bcache: fix for data collapse after re-attaching an attached device Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 163/189] bcache: return attach error when no cache set exist Sasha Levin
2018-04-09  0:18 ` [PATCH AUTOSEL for 4.15 164/189] rxrpc: Fix received abort handling Sasha Levin
2018-04-09  0:19 ` [PATCH AUTOSEL for 4.15 165/189] sch_netem: Bug fixing in calculating Netem interval Sasha Levin
2018-04-09  0:19 ` [PATCH AUTOSEL for 4.15 166/189] cpufreq: intel_pstate: Enable HWP during system resume on CPU0 Sasha Levin
2018-04-09  0:19 ` [PATCH AUTOSEL for 4.15 167/189] selftests/ftrace: Add some missing glob checks Sasha Levin
2018-04-09  0:19 ` [PATCH AUTOSEL for 4.15 168/189] nfsd: return RESOURCE not GARBAGE_ARGS on too many ops Sasha Levin
2018-04-09 15:27   ` J. Bruce Fields
2018-04-15 14:37     ` Sasha Levin
2018-04-16 13:49       ` J. Bruce Fields
2018-04-09  0:19 ` [PATCH AUTOSEL for 4.15 169/189] rxrpc: Don't put crypto buffers on the stack Sasha Levin
2018-04-09  0:19 ` [PATCH AUTOSEL for 4.15 170/189] svcrdma: Fix Read chunk round-up Sasha Levin
2018-04-09  0:19 ` [PATCH AUTOSEL for 4.15 171/189] net: Extra '_get' in declaration of arch_get_platform_mac_address Sasha Levin
2018-04-09  0:19 ` [PATCH AUTOSEL for 4.15 172/189] tipc: fix skb truesize/datasize ratio control Sasha Levin
2018-04-09  0:19 ` [PATCH AUTOSEL for 4.15 174/189] KVM: PPC: Book3S HV: Fix handling of secondary HPTEG in HPT resizing code Sasha Levin
2018-04-09  0:19 ` [PATCH AUTOSEL for 4.15 173/189] tools/libbpf: handle issues with bpf ELF objects containing .eh_frames Sasha Levin
2018-04-09  0:19 ` [PATCH AUTOSEL for 4.15 175/189] ibmvnic: Reset long term map ID counter Sasha Levin
2018-04-09  0:19 ` [PATCH AUTOSEL for 4.15 177/189] net: stmmac: discard disabled flags in interrupt status register Sasha Levin
2018-04-09  0:19 ` [PATCH AUTOSEL for 4.15 176/189] SUNRPC: Don't call __UDPX_INC_STATS() from a preemptible context Sasha Levin
2018-04-09  0:19 ` [PATCH AUTOSEL for 4.15 178/189] bpf: fix rlimit in reuseport net selftest Sasha Levin
2018-04-09  0:19 ` [PATCH AUTOSEL for 4.15 179/189] ACPI / EC: Restore polling during noirq suspend/resume phases Sasha Levin
2018-04-09  0:19 ` [PATCH AUTOSEL for 4.15 180/189] PM / wakeirq: Fix unbalanced IRQ enable for wakeirq Sasha Levin
2018-04-09  0:19 ` [PATCH AUTOSEL for 4.15 181/189] vfs/proc/kcore, x86/mm/kcore: Fix SMAP fault when dumping vsyscall user page Sasha Levin
2018-04-09  0:19 ` [PATCH AUTOSEL for 4.15 183/189] x86/platform/UV: Fix GAM Range Table entries less than 1GB Sasha Levin
2018-04-09  0:19 ` [PATCH AUTOSEL for 4.15 185/189] powerpc/powernv: IMC fix out of bounds memory access at shutdown Sasha Levin
2018-04-09  0:19 ` [PATCH AUTOSEL for 4.15 184/189] locking/qspinlock: Ensure node->count is updated before initialising node Sasha Levin
2018-04-09  0:19 ` [PATCH AUTOSEL for 4.15 186/189] perf test: Fix test trace+probe_libc_inet_pton.sh for s390x Sasha Levin
2018-04-09  0:19 ` [PATCH AUTOSEL for 4.15 187/189] irqchip/gic-v3: Ignore disabled ITS nodes Sasha Levin
2018-04-09  0:19 ` [PATCH AUTOSEL for 4.15 188/189] cpumask: Make for_each_cpu_wrap() available on UP as well Sasha Levin
2018-04-09  0:19 ` [PATCH AUTOSEL for 4.15 189/189] irqchip/gic-v3: Change pr_debug message to pr_devel 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=20180409001637.162453-4-alexander.levin@microsoft.com \
    --to=alexander.levin@microsoft.com \
    --cc=hch@lst.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=roys@lightbitslabs.com \
    --cc=sagi@grimberg.me \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

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

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

Powered by JetHome