mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Willy Tarreau <w@1wt.eu>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Roman Pen <roman.penyaev@profitbricks.com>,
	Gioh Kim <gi-oh.kim@profitbricks.com>,
	Michael Wang <yun.wang@profitbricks.com>,
	Tejun Heo <tj@kernel.org>, Jens Axboe <axboe@kernel.dk>,
	linux-block@vger.kernel.org, Willy Tarreau <w@1wt.eu>
Subject: [PATCH 3.10 092/143] workqueue: fix ghost PENDING flag while doing MQ IO
Date: Sun,  5 Jun 2016 12:19:55 +0200	[thread overview]
Message-ID: <1465122046-9645-93-git-send-email-w@1wt.eu> (raw)
In-Reply-To: <1465122046-9645-1-git-send-email-w@1wt.eu>

From: Roman Pen <roman.penyaev@profitbricks.com>

commit 346c09f80459a3ad97df1816d6d606169a51001a upstream.

The bug in a workqueue leads to a stalled IO request in MQ ctx->rq_list
with the following backtrace:

[  601.347452] INFO: task kworker/u129:5:1636 blocked for more than 120 seconds.
[  601.347574]       Tainted: G           O    4.4.5-1-storage+ #6
[  601.347651] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[  601.348142] kworker/u129:5  D ffff880803077988     0  1636      2 0x00000000
[  601.348519] Workqueue: ibnbd_server_fileio_wq ibnbd_dev_file_submit_io_worker [ibnbd_server]
[  601.348999]  ffff880803077988 ffff88080466b900 ffff8808033f9c80 ffff880803078000
[  601.349662]  ffff880807c95000 7fffffffffffffff ffffffff815b0920 ffff880803077ad0
[  601.350333]  ffff8808030779a0 ffffffff815b01d5 0000000000000000 ffff880803077a38
[  601.350965] Call Trace:
[  601.351203]  [<ffffffff815b0920>] ? bit_wait+0x60/0x60
[  601.351444]  [<ffffffff815b01d5>] schedule+0x35/0x80
[  601.351709]  [<ffffffff815b2dd2>] schedule_timeout+0x192/0x230
[  601.351958]  [<ffffffff812d43f7>] ? blk_flush_plug_list+0xc7/0x220
[  601.352208]  [<ffffffff810bd737>] ? ktime_get+0x37/0xa0
[  601.352446]  [<ffffffff815b0920>] ? bit_wait+0x60/0x60
[  601.352688]  [<ffffffff815af784>] io_schedule_timeout+0xa4/0x110
[  601.352951]  [<ffffffff815b3a4e>] ? _raw_spin_unlock_irqrestore+0xe/0x10
[  601.353196]  [<ffffffff815b093b>] bit_wait_io+0x1b/0x70
[  601.353440]  [<ffffffff815b056d>] __wait_on_bit+0x5d/0x90
[  601.353689]  [<ffffffff81127bd0>] wait_on_page_bit+0xc0/0xd0
[  601.353958]  [<ffffffff81096db0>] ? autoremove_wake_function+0x40/0x40
[  601.354200]  [<ffffffff81127cc4>] __filemap_fdatawait_range+0xe4/0x140
[  601.354441]  [<ffffffff81127d34>] filemap_fdatawait_range+0x14/0x30
[  601.354688]  [<ffffffff81129a9f>] filemap_write_and_wait_range+0x3f/0x70
[  601.354932]  [<ffffffff811ced3b>] blkdev_fsync+0x1b/0x50
[  601.355193]  [<ffffffff811c82d9>] vfs_fsync_range+0x49/0xa0
[  601.355432]  [<ffffffff811cf45a>] blkdev_write_iter+0xca/0x100
[  601.355679]  [<ffffffff81197b1a>] __vfs_write+0xaa/0xe0
[  601.355925]  [<ffffffff81198379>] vfs_write+0xa9/0x1a0
[  601.356164]  [<ffffffff811c59d8>] kernel_write+0x38/0x50

The underlying device is a null_blk, with default parameters:

  queue_mode    = MQ
  submit_queues = 1

Verification that nullb0 has something inflight:

root@pserver8:~# cat /sys/block/nullb0/inflight
       0        1
root@pserver8:~# find /sys/block/nullb0/mq/0/cpu* -name rq_list -print -exec cat {} \;
...
/sys/block/nullb0/mq/0/cpu2/rq_list
CTX pending:
        ffff8838038e2400
...

During debug it became clear that stalled request is always inserted in
the rq_list from the following path:

   save_stack_trace_tsk + 34
   blk_mq_insert_requests + 231
   blk_mq_flush_plug_list + 281
   blk_flush_plug_list + 199
   wait_on_page_bit + 192
   __filemap_fdatawait_range + 228
   filemap_fdatawait_range + 20
   filemap_write_and_wait_range + 63
   blkdev_fsync + 27
   vfs_fsync_range + 73
   blkdev_write_iter + 202
   __vfs_write + 170
   vfs_write + 169
   kernel_write + 56

So blk_flush_plug_list() was called with from_schedule == true.

If from_schedule is true, that means that finally blk_mq_insert_requests()
offloads execution of __blk_mq_run_hw_queue() and uses kblockd workqueue,
i.e. it calls kblockd_schedule_delayed_work_on().

That means, that we race with another CPU, which is about to execute
__blk_mq_run_hw_queue() work.

Further debugging shows the following traces from different CPUs:

  CPU#0                                  CPU#1
  ----------------------------------     -------------------------------
  reqeust A inserted
  STORE hctx->ctx_map[0] bit marked
  kblockd_schedule...() returns 1
  <schedule to kblockd workqueue>
                                         request B inserted
                                         STORE hctx->ctx_map[1] bit marked
                                         kblockd_schedule...() returns 0
  *** WORK PENDING bit is cleared ***
  flush_busy_ctxs() is executed, but
  bit 1, set by CPU#1, is not observed

As a result request B pended forever.

This behaviour can be explained by speculative LOAD of hctx->ctx_map on
CPU#0, which is reordered with clear of PENDING bit and executed _before_
actual STORE of bit 1 on CPU#1.

The proper fix is an explicit full barrier <mfence>, which guarantees
that clear of PENDING bit is to be executed before all possible
speculative LOADS or STORES inside actual work function.

Signed-off-by: Roman Pen <roman.penyaev@profitbricks.com>
Cc: Gioh Kim <gi-oh.kim@profitbricks.com>
Cc: Michael Wang <yun.wang@profitbricks.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: linux-block@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: stable@vger.kernel.org
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Willy Tarreau <w@1wt.eu>
---
 kernel/workqueue.c | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index fe7c4b91..66972ac 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -606,6 +606,35 @@ static void set_work_pool_and_clear_pending(struct work_struct *work,
 	 */
 	smp_wmb();
 	set_work_data(work, (unsigned long)pool_id << WORK_OFFQ_POOL_SHIFT, 0);
+	/*
+	 * The following mb guarantees that previous clear of a PENDING bit
+	 * will not be reordered with any speculative LOADS or STORES from
+	 * work->current_func, which is executed afterwards.  This possible
+	 * reordering can lead to a missed execution on attempt to qeueue
+	 * the same @work.  E.g. consider this case:
+	 *
+	 *   CPU#0                         CPU#1
+	 *   ----------------------------  --------------------------------
+	 *
+	 * 1  STORE event_indicated
+	 * 2  queue_work_on() {
+	 * 3    test_and_set_bit(PENDING)
+	 * 4 }                             set_..._and_clear_pending() {
+	 * 5                                 set_work_data() # clear bit
+	 * 6                                 smp_mb()
+	 * 7                               work->current_func() {
+	 * 8				      LOAD event_indicated
+	 *				   }
+	 *
+	 * Without an explicit full barrier speculative LOAD on line 8 can
+	 * be executed before CPU#0 does STORE on line 1.  If that happens,
+	 * CPU#0 observes the PENDING bit is still set and new execution of
+	 * a @work is not queued in a hope, that CPU#1 will eventually
+	 * finish the queued @work.  Meanwhile CPU#1 does not see
+	 * event_indicated is set, because speculative LOAD was executed
+	 * before actual STORE.
+	 */
+	smp_mb();
 }
 
 static void clear_work_data(struct work_struct *work)
-- 
2.8.0.rc2.1.gbe9624a

  parent reply	other threads:[~2016-06-05 10:43 UTC|newest]

Thread overview: 154+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-05 10:18 [PATCH 3.10 000/143] 3.10.102-stable review Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 001/143] pipe: Fix buffer offset after partially failed read Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 002/143] x86/iopl/64: Properly context-switch IOPL on Xen PV Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 003/143] ext4: fix NULL pointer dereference in ext4_mark_inode_dirty() Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 004/143] compiler-gcc: integrate the various compiler-gcc[345].h files Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 005/143] x86: LLVMLinux: Fix "incomplete type const struct x86cpu_device_id" Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 006/143] KVM: i8254: change PIT discard tick policy Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 007/143] KVM: fix spin_lock_init order on x86 Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 008/143] EDAC, amd64_edac: Shift wrapping issue in f1x_get_norm_dct_addr() Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 009/143] PCI: Disable IO/MEM decoding for devices with non-compliant BARs Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 010/143] linux/const.h: Add _BITUL() and _BITULL() Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 011/143] x86: Rename X86_CR4_RDWRGSFS to X86_CR4_FSGSBASE Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 012/143] x86, processor-flags: Fix the datatypes and add bit number defines Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 013/143] x86/iopl: Fix iopl capability check on Xen PV Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 014/143] sg: fix dxferp in from_to case Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 015/143] aacraid: Fix memory leak in aac_fib_map_free Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 016/143] be2iscsi: set the boot_kset pointer to NULL in case of failure Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 017/143] usb: retry reset if a device times out Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 018/143] USB: cdc-acm: more sanity checking Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 019/143] USB: iowarrior: fix oops with malicious USB descriptors Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 020/143] USB: usb_driver_claim_interface: add sanity checking Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 021/143] USB: mct_u232: add sanity checking in probe Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 022/143] USB: digi_acceleport: do sanity checking for the number of ports Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 023/143] USB: cypress_m8: add endpoint sanity check Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 024/143] USB: serial: cp210x: Adding GE Healthcare Device ID Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 025/143] USB: option: add "D-Link DWM-221 B1" device id Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 026/143] pwc: Add USB id for Philips Spc880nc webcam Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 027/143] Input: powermate - fix oops with malicious USB descriptors Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 028/143] net: irda: Fix use-after-free in irtty_open() Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 029/143] 8250: use callbacks to access UART_DLL/UART_DLM Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 030/143] bttv: Width must be a multiple of 16 when capturing planar formats Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 031/143] media: v4l2-compat-ioctl32: fix missing length copy in put_v4l2_buffer32 Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 032/143] ALSA: intel8x0: Add clock quirk entry for AD1981B on IBM ThinkPad X41 Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 033/143] jbd2: fix FS corruption possibility in jbd2_journal_destroy() on umount path Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 034/143] bcache: fix cache_set_flush() NULL pointer dereference on OOM Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 035/143] watchdog: rc32434_wdt: fix ioctl error handling Willy Tarreau
2016-06-05 10:18 ` [PATCH 3.10 036/143] splice: handle zero nr_pages in splice_to_pipe() Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 037/143] xtensa: ISS: don't hang if stdin EOF is reached Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 038/143] xtensa: clear all DBREAKC registers on start Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 039/143] md/raid5: Compare apples to apples (or sectors to sectors) Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 040/143] rapidio/rionet: fix deadlock on SMP Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 041/143] ipr: Fix out-of-bounds null overwrite Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 042/143] ipr: Fix regression when loading firmware Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 043/143] drm/radeon: Don't drop DP 2.7 Ghz link setup on some cards Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 044/143] tracing: Have preempt(irqs)off trace preempt disabled functions Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 045/143] tracing: Fix crash from reading trace_pipe with sendfile Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 046/143] tracing: Fix trace_printk() to print when not using bprintk() Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 047/143] scripts/coccinelle: modernize & Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 048/143] Input: ims-pcu - sanity check against missing interfaces Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 049/143] Input: ati_remote2 - fix crashes on detecting device with invalid descriptor Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 050/143] ocfs2/dlm: fix race between convert and recovery Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 051/143] ocfs2/dlm: fix BUG in dlm_move_lockres_to_recovery_list Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 052/143] mtd: onenand: fix deadlock in onenand_block_markbad Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 053/143] sched/cputime: Fix steal time accounting vs. CPU hotplug Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 054/143] perf/x86/intel: Fix PEBS data source interpretation on Nehalem/Westmere Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 055/143] hwmon: (max1111) Return -ENODEV from max1111_read_channel if not instantiated Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 056/143] parisc: Avoid function pointers for kernel exception routines Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 057/143] parisc: Fix kernel crash with reversed copy_from_user() Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 058/143] ALSA: timer: Use mod_timer() for rearming the system timer Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 059/143] net: jme: fix suspend/resume on JMC260 Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 060/143] sctp: lack the check for ports in sctp_v6_cmp_addr Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 061/143] ipv6: re-enable fragment header matching in ipv6_find_hdr Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 062/143] cdc_ncm: toggle altsetting to force reset before setup Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 063/143] usbnet: cleanup after bind() in probe() Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 064/143] udp6: fix UDP/IPv6 encap resubmit path Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 065/143] sh_eth: fix NULL pointer dereference in sh_eth_ring_format() Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 066/143] net: Fix use after free in the recvmmsg exit path Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 067/143] farsync: fix off-by-one bug in fst_add_one Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 068/143] ath9k: fix buffer overrun for ar9287 Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 069/143] qlge: Fix receive packets drop Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 070/143] ppp: take reference on channels netns Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 071/143] qmi_wwan: add "D-Link DWM-221 B1" device id Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 072/143] ipv4: l2tp: fix a potential issue in l2tp_ip_recv Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 073/143] ipv6: l2tp: fix a potential issue in l2tp_ip6_recv Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 074/143] ip6_tunnel: set rtnl_link_ops before calling register_netdevice Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 075/143] usb: renesas_usbhs: avoid NULL pointer derefernce in usbhsf_pkt_handler() Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 076/143] usb: renesas_usbhs: disable TX IRQ before starting TX DMAC transfer Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 077/143] ext4: add lockdep annotations for i_data_sem Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 078/143] HID: usbhid: fix inconsistent reset/resume/reset-resume behavior Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 079/143] drm/radeon: hold reference to fences in radeon_sa_bo_new (3.17 and older) Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 080/143] [media] usbvision-video: fix memory leak of alt_max_pkt_size Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 081/143] usbvision: fix leak of usb_dev on failure paths in usbvision_probe() Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 082/143] usbvision: fix crash on detecting device with invalid configuration Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 083/143] usb: xhci: fix wild pointers in xhci_mem_cleanup Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 084/143] usb: hcd: out of bounds access in for_each_companion Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 085/143] crypto: gcm - Fix rfc4543 decryption crash Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 086/143] nl80211: check netlink protocol in socket release notification Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 087/143] Input: gtco - fix crash on detecting device without endpoints Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 088/143] i2c: cpm: Fix build break due to incompatible pointer types Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 089/143] EDAC: i7core, sb_edac: Don't return NOTIFY_BAD from mce_decoder callback Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 090/143] ASoC: s3c24xx: use const snd_soc_component_driver pointer Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 091/143] efi: Fix out-of-bounds read in variable_matches() Willy Tarreau
2016-06-05 10:19 ` Willy Tarreau [this message]
2016-06-05 10:19 ` [PATCH 3.10 093/143] USB: usbip: fix potential out-of-bounds write Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 094/143] paride: make 'verbose' parameter an 'int' again Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 095/143] fbdev: da8xx-fb: fix videomodes of lcd panels Willy Tarreau
2016-06-05 10:19 ` [PATCH 3.10 096/143] misc/bmp085: Enable building as a module Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 097/143] rtc: vr41xx: Wire up alarm_irq_enable Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 098/143] drivers/misc/ad525x_dpot: AD5274 fix RDAC read back errors Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 099/143] include/linux/poison.h: fix LIST_POISON{1,2} offset Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 100/143] Drivers: hv: vmbus: prevent cpu offlining on newer hypervisors Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 101/143] perf stat: Document --detailed option Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 102/143] ARM: OMAP3: Add cpuidle parameters table for omap3430 Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 103/143] compiler-gcc: disable -ftracer for __noclone functions Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 104/143] ipvs: correct initial offset of Call-ID header search in SIP persistence engine Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 105/143] nbd: ratelimit error msgs after socket close Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 106/143] clk: versatile: sp810: support reentrance Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 107/143] lpfc: fix misleading indentation Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 108/143] ARM: SoCFPGA: Fix secondary CPU startup in thumb2 kernel Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 109/143] proc: prevent accessing /proc/<PID>/environ until it's ready Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 110/143] batman-adv: Fix broadcast/ogm queue limit on a removed interface Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 111/143] MAINTAINERS: Remove asterisk from EFI directory names Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 112/143] ACPICA: Dispatcher: Update thread ID for recursive method calls Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 113/143] USB: serial: cp210x: add ID for Link ECU Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 114/143] USB: serial: cp210x: add Straizona Focusers device ids Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 115/143] Input: ads7846 - correct the value got from SPI Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 116/143] powerpc: scan_features() updates incorrect bits for REAL_LE Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 117/143] crypto: hash - Fix page length clamping in hash walk Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 118/143] get_rock_ridge_filename(): handle malformed NM entries Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 119/143] Input: max8997-haptic - fix NULL pointer dereference Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 120/143] asmlinkage, pnp: Make variables used from assembler code visible Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 121/143] ARM: OMAP3: Fix booting with thumb2 kernel Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 122/143] decnet: Do not build routes to devices without decnet private data Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 123/143] route: do not cache fib route info on local routes with oif Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 124/143] packet: fix heap info leak in PACKET_DIAG_MCLIST sock_diag interface Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 125/143] atl2: Disable unimplemented scatter/gather feature Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 126/143] net: fix infoleak in llc Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 127/143] net: fix infoleak in rtnetlink Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 128/143] VSOCK: do not disconnect socket when peer has shutdown SEND only Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 129/143] net: bridge: fix old ioctl unlocked net device walk Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 130/143] net: fix a kernel infoleak in x25 module Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 131/143] fs/cifs: correctly to anonymous authentication via NTLMSSP Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 132/143] ring-buffer: Use long for nr_pages to avoid overflow failures Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 133/143] ring-buffer: Prevent overflow of size in ring_buffer_resize() Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 134/143] mfd: omap-usb-tll: Fix scheduling while atomic BUG Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 135/143] mmc: mmc: Fix partition switch timeout for some eMMCs Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 136/143] mmc: longer timeout for long read time quirk Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 137/143] Bluetooth: vhci: purge unhandled skbs Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 138/143] USB: serial: keyspan: fix use-after-free in probe error path Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 139/143] USB: serial: quatech2: " Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 140/143] USB: serial: io_edgeport: fix memory leaks " Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 141/143] USB: serial: option: add support for Cinterion PH8 and AHxx Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 142/143] tty: vt, return error when con_startup fails Willy Tarreau
2016-06-05 10:20 ` [PATCH 3.10 143/143] serial: samsung: Reorder the sequence of clock control when call s3c24xx_serial_set_termios() Willy Tarreau
2016-06-07  3:46 ` [PATCH 3.10 000/143] 3.10.102-stable review Guenter Roeck
2016-06-07  4:09   ` Willy Tarreau
2016-06-07  4:30     ` Guenter Roeck
2016-06-07  5:17       ` Willy Tarreau
2016-06-07  5:59         ` Guenter Roeck
2016-06-07  6:54           ` Willy Tarreau
2016-06-07 17:49             ` Willy Tarreau
2016-06-07 18:21               ` Guenter Roeck
2016-06-08  0:52               ` Guenter Roeck
2016-06-08  5:19                 ` Willy Tarreau

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=1465122046-9645-93-git-send-email-w@1wt.eu \
    --to=w@1wt.eu \
    --cc=axboe@kernel.dk \
    --cc=gi-oh.kim@profitbricks.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=roman.penyaev@profitbricks.com \
    --cc=stable@vger.kernel.org \
    --cc=tj@kernel.org \
    --cc=yun.wang@profitbricks.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

all inboxes | Powered by JetHome®