linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Willy Tarreau <w@1wt.eu>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Karl Heiss <kheiss@gmail.com>,
	"David S . Miller" <davem@davemloft.net>,
	Willy Tarreau <w@1wt.eu>
Subject: [PATCH 3.10 152/180] sctp: Prevent soft lockup when sctp_accept() is called during a timeout event
Date: Sun, 21 Aug 2016 17:31:22 +0200	[thread overview]
Message-ID: <1471793510-13022-153-git-send-email-w@1wt.eu> (raw)
In-Reply-To: <1471793510-13022-1-git-send-email-w@1wt.eu>

From: Karl Heiss <kheiss@gmail.com>

commit 635682a14427d241bab7bbdeebb48a7d7b91638e upstream.

A case can occur when sctp_accept() is called by the user during
a heartbeat timeout event after the 4-way handshake.  Since
sctp_assoc_migrate() changes both assoc->base.sk and assoc->ep, the
bh_sock_lock in sctp_generate_heartbeat_event() will be taken with
the listening socket but released with the new association socket.
The result is a deadlock on any future attempts to take the listening
socket lock.

Note that this race can occur with other SCTP timeouts that take
the bh_lock_sock() in the event sctp_accept() is called.

 BUG: soft lockup - CPU#9 stuck for 67s! [swapper:0]
 ...
 RIP: 0010:[<ffffffff8152d48e>]  [<ffffffff8152d48e>] _spin_lock+0x1e/0x30
 RSP: 0018:ffff880028323b20  EFLAGS: 00000206
 RAX: 0000000000000002 RBX: ffff880028323b20 RCX: 0000000000000000
 RDX: 0000000000000000 RSI: ffff880028323be0 RDI: ffff8804632c4b48
 RBP: ffffffff8100bb93 R08: 0000000000000000 R09: 0000000000000000
 R10: ffff880610662280 R11: 0000000000000100 R12: ffff880028323aa0
 R13: ffff8804383c3880 R14: ffff880028323a90 R15: ffffffff81534225
 FS:  0000000000000000(0000) GS:ffff880028320000(0000) knlGS:0000000000000000
 CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
 CR2: 00000000006df528 CR3: 0000000001a85000 CR4: 00000000000006e0
 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
 Process swapper (pid: 0, threadinfo ffff880616b70000, task ffff880616b6cab0)
 Stack:
 ffff880028323c40 ffffffffa01c2582 ffff880614cfb020 0000000000000000
 <d> 0100000000000000 00000014383a6c44 ffff8804383c3880 ffff880614e93c00
 <d> ffff880614e93c00 0000000000000000 ffff8804632c4b00 ffff8804383c38b8
 Call Trace:
 <IRQ>
 [<ffffffffa01c2582>] ? sctp_rcv+0x492/0xa10 [sctp]
 [<ffffffff8148c559>] ? nf_iterate+0x69/0xb0
 [<ffffffff814974a0>] ? ip_local_deliver_finish+0x0/0x2d0
 [<ffffffff8148c716>] ? nf_hook_slow+0x76/0x120
 [<ffffffff814974a0>] ? ip_local_deliver_finish+0x0/0x2d0
 [<ffffffff8149757d>] ? ip_local_deliver_finish+0xdd/0x2d0
 [<ffffffff81497808>] ? ip_local_deliver+0x98/0xa0
 [<ffffffff81496ccd>] ? ip_rcv_finish+0x12d/0x440
 [<ffffffff81497255>] ? ip_rcv+0x275/0x350
 [<ffffffff8145cfeb>] ? __netif_receive_skb+0x4ab/0x750
 ...

With lockdep debugging:

 =====================================
 [ BUG: bad unlock balance detected! ]
 -------------------------------------
 CslRx/12087 is trying to release lock (slock-AF_INET) at:
 [<ffffffffa01bcae0>] sctp_generate_timeout_event+0x40/0xe0 [sctp]
 but there are no more locks to release!

 other info that might help us debug this:
 2 locks held by CslRx/12087:
 #0:  (&asoc->timers[i]){+.-...}, at: [<ffffffff8108ce1f>] run_timer_softirq+0x16f/0x3e0
 #1:  (slock-AF_INET){+.-...}, at: [<ffffffffa01bcac3>] sctp_generate_timeout_event+0x23/0xe0 [sctp]

Ensure the socket taken is also the same one that is released by
saving a copy of the socket before entering the timeout event
critical section.

Signed-off-by: Karl Heiss <kheiss@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
[wt: adjusted, 3.10 uses sctp_bh_unlock_sock() instead of bh_lock_sock()]

Signed-off-by: Willy Tarreau <w@1wt.eu>
---
 net/sctp/sm_sideeffect.c | 42 +++++++++++++++++++++++-------------------
 1 file changed, 23 insertions(+), 19 deletions(-)

diff --git a/net/sctp/sm_sideeffect.c b/net/sctp/sm_sideeffect.c
index 8aab894..730914c 100644
--- a/net/sctp/sm_sideeffect.c
+++ b/net/sctp/sm_sideeffect.c
@@ -251,12 +251,13 @@ void sctp_generate_t3_rtx_event(unsigned long peer)
 	int error;
 	struct sctp_transport *transport = (struct sctp_transport *) peer;
 	struct sctp_association *asoc = transport->asoc;
-	struct net *net = sock_net(asoc->base.sk);
+	struct sock *sk = asoc->base.sk;
+	struct net *net = sock_net(sk);
 
 	/* Check whether a task is in the sock.  */
 
-	sctp_bh_lock_sock(asoc->base.sk);
-	if (sock_owned_by_user(asoc->base.sk)) {
+	sctp_bh_lock_sock(sk);
+	if (sock_owned_by_user(sk)) {
 		SCTP_DEBUG_PRINTK("%s:Sock is busy.\n", __func__);
 
 		/* Try again later.  */
@@ -279,10 +280,10 @@ void sctp_generate_t3_rtx_event(unsigned long peer)
 			   transport, GFP_ATOMIC);
 
 	if (error)
-		asoc->base.sk->sk_err = -error;
+		sk->sk_err = -error;
 
 out_unlock:
-	sctp_bh_unlock_sock(asoc->base.sk);
+	sctp_bh_unlock_sock(sk);
 	sctp_transport_put(transport);
 }
 
@@ -292,11 +293,12 @@ out_unlock:
 static void sctp_generate_timeout_event(struct sctp_association *asoc,
 					sctp_event_timeout_t timeout_type)
 {
-	struct net *net = sock_net(asoc->base.sk);
+	struct sock *sk = asoc->base.sk;
+	struct net *net = sock_net(sk);
 	int error = 0;
 
-	sctp_bh_lock_sock(asoc->base.sk);
-	if (sock_owned_by_user(asoc->base.sk)) {
+	sctp_bh_lock_sock(sk);
+	if (sock_owned_by_user(sk)) {
 		SCTP_DEBUG_PRINTK("%s:Sock is busy: timer %d\n",
 				  __func__,
 				  timeout_type);
@@ -320,10 +322,10 @@ static void sctp_generate_timeout_event(struct sctp_association *asoc,
 			   (void *)timeout_type, GFP_ATOMIC);
 
 	if (error)
-		asoc->base.sk->sk_err = -error;
+		sk->sk_err = -error;
 
 out_unlock:
-	sctp_bh_unlock_sock(asoc->base.sk);
+	sctp_bh_unlock_sock(sk);
 	sctp_association_put(asoc);
 }
 
@@ -373,10 +375,11 @@ void sctp_generate_heartbeat_event(unsigned long data)
 	int error = 0;
 	struct sctp_transport *transport = (struct sctp_transport *) data;
 	struct sctp_association *asoc = transport->asoc;
-	struct net *net = sock_net(asoc->base.sk);
+	struct sock *sk = asoc->base.sk;
+	struct net *net = sock_net(sk);
 
-	sctp_bh_lock_sock(asoc->base.sk);
-	if (sock_owned_by_user(asoc->base.sk)) {
+	sctp_bh_lock_sock(sk);
+	if (sock_owned_by_user(sk)) {
 		SCTP_DEBUG_PRINTK("%s:Sock is busy.\n", __func__);
 
 		/* Try again later.  */
@@ -397,10 +400,10 @@ void sctp_generate_heartbeat_event(unsigned long data)
 			   transport, GFP_ATOMIC);
 
 	 if (error)
-		 asoc->base.sk->sk_err = -error;
+		 sk->sk_err = -error;
 
 out_unlock:
-	sctp_bh_unlock_sock(asoc->base.sk);
+	sctp_bh_unlock_sock(sk);
 	sctp_transport_put(transport);
 }
 
@@ -411,10 +414,11 @@ void sctp_generate_proto_unreach_event(unsigned long data)
 {
 	struct sctp_transport *transport = (struct sctp_transport *) data;
 	struct sctp_association *asoc = transport->asoc;
-	struct net *net = sock_net(asoc->base.sk);
+	struct sock *sk = asoc->base.sk;
+	struct net *net = sock_net(sk);
 	
-	sctp_bh_lock_sock(asoc->base.sk);
-	if (sock_owned_by_user(asoc->base.sk)) {
+	sctp_bh_lock_sock(sk);
+	if (sock_owned_by_user(sk)) {
 		SCTP_DEBUG_PRINTK("%s:Sock is busy.\n", __func__);
 
 		/* Try again later.  */
@@ -435,7 +439,7 @@ void sctp_generate_proto_unreach_event(unsigned long data)
 		   asoc->state, asoc->ep, asoc, transport, GFP_ATOMIC);
 
 out_unlock:
-	sctp_bh_unlock_sock(asoc->base.sk);
+	sctp_bh_unlock_sock(sk);
 	sctp_association_put(asoc);
 }
 
-- 
2.8.0.rc2.1.gbe9624a

  parent reply	other threads:[~2016-08-21 15:53 UTC|newest]

Thread overview: 192+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-21 15:28 [PATCH 3.10 000/180] 3.10.103-stable review Willy Tarreau
2016-08-21 15:28 ` [PATCH 3.10 001/180] X.509: remove possible code fragility: enumeration values not handled Willy Tarreau
2016-08-21 15:28 ` [PATCH 3.10 002/180] x86, asmlinkage, apm: Make APM data structure used from assembler visible Willy Tarreau
2016-08-21 15:28 ` [PATCH 3.10 003/180] netfilter: x_tables: validate e->target_offset early Willy Tarreau
2016-08-21 15:28 ` [PATCH 3.10 004/180] netfilter: x_tables: make sure e->next_offset covers remaining blob size Willy Tarreau
2016-08-21 15:28 ` [PATCH 3.10 005/180] netfilter: x_tables: fix unconditional helper Willy Tarreau
2016-08-21 15:28 ` [PATCH 3.10 006/180] netfilter: x_tables: don't move to non-existent next rule Willy Tarreau
2016-08-21 15:28 ` [PATCH 3.10 007/180] netfilter: x_tables: validate targets of jumps Willy Tarreau
2016-08-21 19:57   ` Willy Tarreau
2016-08-21 20:16     ` Florian Westphal
2016-08-21 21:21       ` Willy Tarreau
2016-08-21 15:28 ` [PATCH 3.10 008/180] netfilter: x_tables: add and use xt_check_entry_offsets Willy Tarreau
2016-08-21 15:28 ` [PATCH 3.10 009/180] netfilter: x_tables: kill check_entry helper Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 010/180] netfilter: x_tables: assert minimum target size Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 011/180] netfilter: x_tables: add compat version of xt_check_entry_offsets Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 012/180] netfilter: x_tables: check standard target size too Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 013/180] netfilter: x_tables: check for bogus target offset Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 014/180] netfilter: x_tables: validate all offsets and sizes in a rule Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 015/180] netfilter: x_tables: don't reject valid target size on some architectures Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 016/180] netfilter: arp_tables: simplify translate_compat_table args Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 017/180] netfilter: ip_tables: " Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 018/180] netfilter: ip6_tables: " Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 019/180] netfilter: x_tables: xt_compat_match_from_user doesn't need a retval Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 020/180] netfilter: ensure number of counters is >0 in do_replace() Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 021/180] netfilter: x_tables: do compat validation via translate_table Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 022/180] Revert "netfilter: ensure number of counters is >0 in do_replace()" Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 023/180] netfilter: x_tables: introduce and use xt_copy_counters_from_user Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 024/180] perf/x86: Honor the architectural performance monitoring version Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 025/180] perf/x86: Fix undefined shift on 32-bit kernels Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 026/180] signal: remove warning about using SI_TKILL in rt_[tg]sigqueueinfo Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 027/180] PCI/ACPI: Fix _OSC ordering to allow PCIe hotplug use when available Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 028/180] udp: properly support MSG_PEEK with truncated buffers Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 029/180] USB: fix invalid memory access in hub_activate() Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 030/180] USB: usbfs: fix potential infoleak in devio Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 031/180] USB: fix up faulty backports Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 032/180] USB: EHCI: declare hostpc register as zero-length array Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 033/180] USB: serial: option: add support for Telit LE910 PID 0x1206 Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 034/180] usb: musb: Stop bulk endpoint while queue is rotated Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 035/180] usb: musb: Ensure rx reinit occurs for shared_fifo endpoints Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 036/180] usb: renesas_usbhs: protect the CFIFOSEL setting in usbhsg_ep_enable() Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 037/180] x86/mm: Add barriers and document switch_mm()-vs-flush synchronization Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 038/180] pipe: limit the per-user amount of pages allocated in pipes Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 039/180] cdc_ncm: do not call usbnet_link_change from cdc_ncm_bind Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 040/180] KEYS: potential uninitialized variable Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 041/180] mm: migrate dirty page without clear_page_dirty_for_io etc Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 042/180] printk: do cond_resched() between lines while outputting to consoles Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 043/180] HID: hiddev: validate num_values for HIDIOCGUSAGES, HIDIOCSUSAGES commands Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 044/180] libceph: apply new_state before new_up_client on incrementals Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 045/180] tmpfs: don't undo fallocate past its last page Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 046/180] tmpfs: fix regression hang in fallocate undo Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 047/180] tcp: make challenge acks less predictable Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 048/180] tcp: record TLP and ER timer stats in v6 stats Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 049/180] tcp: consider recv buf for the initial window scale Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 050/180] MIPS: KVM: Fix mapped fault broken commpage handling Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 051/180] MIPS: KVM: Add missing gfn range check Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 052/180] MIPS: KVM: Fix gfn range check in kseg0 tlb faults Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 053/180] MIPS: KVM: Propagate kseg0/mapped tlb fault errors Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 054/180] MIPS: math-emu: Fix jalr emulation when rd == $0 Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 055/180] MIPS: Fix siginfo.h to use strict posix types Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 056/180] MIPS: ath79: make bootconsole wait for both THRE and TEMT Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 057/180] MIPS: Fix 64k page support for 32 bit kernels Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 058/180] MIPS: KVM: Fix modular KVM under QEMU Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 059/180] Input: uinput - handle compat ioctl for UI_SET_PHYS Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 060/180] Input: wacom_w8001 - w8001_MAX_LENGTH should be 13 Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 061/180] Input: xpad - validate USB endpoint count during probe Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 062/180] ath5k: Change led pin configuration for compaq c700 laptop Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 063/180] aacraid: Relinquish CPU during timeout wait Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 064/180] aacraid: Fix for aac_command_thread hang Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 065/180] PCI: Disable all BAR sizing for devices with non-compliant BARs Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 066/180] rtlwifi: Fix logic error in enter/exit power-save mode Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 067/180] powerpc/book3s64: Fix branching to OOL handlers in relocatable kernel Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 068/180] powerpc: Fix definition of SIAR and SDAR registers Willy Tarreau
2016-08-21 15:29 ` [PATCH 3.10 069/180] powerpc: Use privileged SPR number for MMCR2 Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 070/180] powerpc/pseries/eeh: Handle RTAS delay requests in configure_bridge Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 071/180] powerpc/iommu: Remove the dependency on EEH struct in DDW mechanism Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 072/180] powerpc/pseries: Fix PCI config address for DDW Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 073/180] powerpc/tm: Always reclaim in start_thread() for exec() class syscalls Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 074/180] sunrpc: fix stripping of padded MIC tokens Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 075/180] drm/gma500: Fix possible out of bounds read Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 076/180] drm/fb_helper: Fix references to dev->mode_config.num_connector Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 077/180] drm/radeon: fix asic initialization for virtualized environments Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 078/180] drm/radeon: add a delay after ATPX dGPU power off Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 079/180] drm/radeon: Poll for both connect/disconnect on analog connectors Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 080/180] drm/radeon: fix firmware info version checks Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 081/180] ext4: fix hang when processing corrupted orphaned inode list Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 082/180] ext4: address UBSAN warning in mb_find_order_for_block() Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 083/180] ext4: silence UBSAN in ext4_mb_init() Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 084/180] ext4: verify extent header depth Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 085/180] ext4: check for extents that wrap around Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 086/180] ext4: don't call ext4_should_journal_data() on the journal inode Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 087/180] ext4: short-cut orphan cleanup on error Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 088/180] ext4: fix reference counting bug on block allocation error Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 089/180] dma-debug: avoid spinlock recursion when disabling dma-debug Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 090/180] xfs: xfs_iflush_cluster fails to abort on error Willy Tarreau
2016-08-22  4:21   ` Dave Chinner
2016-08-22  5:18     ` Willy Tarreau
2016-08-22  5:26       ` Willy Tarreau
2016-08-22 10:55       ` Dave Chinner
2016-08-22 11:08         ` Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 091/180] xfs: fix inode validity check in xfs_iflush_cluster Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 092/180] xfs: skip stale inodes " Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 093/180] KVM: x86: fix OOPS after invalid KVM_SET_DEBUGREGS Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 094/180] ARM: fix PTRACE_SETVFPREGS on SMP systems Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 095/180] arm: oabi compat: add missing access checks Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 096/180] parisc: Fix pagefault crash in unaligned __get_user() call Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 097/180] ecryptfs: forbid opening files without mmap handler Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 098/180] wext: Fix 32 bit iwpriv compatibility issue with 64 bit Kernel Willy Tarreau
2016-08-22  5:35   ` Johannes Berg
2016-08-22  5:47     ` Willy Tarreau
2016-09-22  8:33     ` Jiri Slaby
2016-08-21 15:30 ` [PATCH 3.10 099/180] fix d_walk()/non-delayed __d_free() race Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 100/180] xfs: fix up backport error in fs/xfs/xfs_inode.c Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 101/180] crypto: ux500 - memmove the right size Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 102/180] crypto: gcm - Filter out async ghash if necessary Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 103/180] crypto: scatterwalk - Fix test in scatterwalk_done Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 104/180] sit: correct IP protocol used in ipip6_err Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 105/180] ipmr/ip6mr: Initialize the last assert time of mfc entries Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 106/180] net: alx: Work around the DMA RX overflow issue Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 107/180] mac80211: mesh: flush mesh paths unconditionally Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 108/180] mac80211_hwsim: Add missing check for HWSIM_ATTR_SIGNAL Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 109/180] IB/mlx4: Properly initialize GRH TClass and FlowLabel in AHs Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 110/180] IB/security: Restrict use of the write() interface Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 111/180] IB/IPoIB: Don't update neigh validity for unresolved entries Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 112/180] IB/mlx4: Fix the SQ size of an RC QP Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 113/180] x86, build: copy ldlinux.c32 to image.iso Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 114/180] kprobes/x86: Clear TF bit in fault on single-stepping Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 115/180] x86/amd_nb: Fix boot crash on non-AMD systems Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 116/180] NFS: Fix another OPEN_DOWNGRADE bug Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 117/180] mm: Export migrate_page_move_mapping and migrate_page_copy Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 118/180] UBIFS: Implement ->migratepage() Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 119/180] cdc_ncm: workaround for EM7455 "silent" data interface Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 120/180] kvm: Fix irq route entries exceeding KVM_MAX_IRQ_ROUTES Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 121/180] tracing: Handle NULL formats in hold_module_trace_bprintk_format() Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 122/180] base: make module_create_drivers_dir race-free Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 123/180] iio: Fix error handling in iio_trigger_attach_poll_func Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 124/180] staging: iio: accel: fix error check Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 125/180] iio: accel: kxsd9: fix the usage of spi_w8r8() Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 126/180] iio:ad7266: Fix broken regulator error handling Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 127/180] iio:ad7266: Fix probe deferral for vref Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 128/180] tty/vt/keyboard: fix OOB access in do_compute_shiftstate() Willy Tarreau
2016-08-21 15:30 ` [PATCH 3.10 129/180] ALSA: dummy: Fix a use-after-free at closing Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 130/180] ALSA: au88x0: Fix calculation in vortex_wtdma_bufshift() Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 131/180] ALSA: ctl: Stop notification after disconnection Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 132/180] ALSA: timer: Fix leak in SNDRV_TIMER_IOCTL_PARAMS Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 133/180] ALSA: timer: Fix leak in events via snd_timer_user_ccallback Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 134/180] ALSA: timer: Fix leak in events via snd_timer_user_tinterrupt Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 135/180] scsi: fix race between simultaneous decrements of ->host_failed Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 136/180] scsi: remove scsi_end_request Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 137/180] Fix reconnect to not defer smb3 session reconnect long after socket reconnect Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 138/180] xen/acpi: allow xen-acpi-processor driver to load on Xen 4.7 Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 139/180] s390/seccomp: fix error return for filtered system calls Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 140/180] fs/nilfs2: fix potential underflow in call to crc32_le Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 141/180] arc: unwind: warn only once if DW2_UNWIND is disabled Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 142/180] xen/pciback: Fix conf_space read/write overlap check Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 143/180] Revert "ecryptfs: forbid opening files without mmap handler" Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 144/180] ecryptfs: don't allow mmap when the lower fs doesn't support it Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 145/180] ARC: use ASL assembler mnemonic Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 146/180] qeth: delete napi struct when removing a qeth device Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 147/180] mmc: block: fix packed command header endianness Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 148/180] can: at91_can: RX queue could get stuck at high bus load Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 149/180] can: fix oops caused by wrong rtnl dellink usage Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 150/180] ipr: Clear interrupt on croc/crocodile when running with LSI Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 151/180] net: mvneta: set real interrupt per packet for tx_done Willy Tarreau
2016-08-21 15:31 ` Willy Tarreau [this message]
2016-08-21 15:31 ` [PATCH 3.10 153/180] x86/mm: Improve switch_mm() barrier comments Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 154/180] KEYS: 64-bit MIPS needs to use compat_sys_keyctl for 32-bit userspace Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 155/180] scsi_lib: correctly retry failed zero length REQ_TYPE_FS commands Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 156/180] block: fix use-after-free in seq file Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 157/180] fuse: fix wrong assignment of ->flags in fuse_send_init() Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 158/180] net/irda: fix NULL pointer dereference on memory allocation failure Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 159/180] gpio: pca953x: Fix NBANK calculation for PCA9536 Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 160/180] hp-wmi: Fix wifi cannot be hard-unblocked Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 161/180] s5p-mfc: Set device name for reserved memory region devs Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 162/180] s5p-mfc: Add release callback for " Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 163/180] Bluetooth: Fix l2cap_sock_setsockopt() with optname BT_RCVMTU Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 164/180] cifs: Check for existing directory when opening file with O_CREAT Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 165/180] netlabel: add address family checks to netlbl_{sock,req}_delattr() Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 166/180] balloon: check the number of available pages in leak balloon Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 167/180] ftrace/recordmcount: Work around for addition of metag magic but not relocations Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 168/180] metag: Fix __cmpxchg_u32 asm constraint for CMP Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 169/180] ubi: Make volume resize power cut aware Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 170/180] ubi: Fix race condition between ubi device creation and udev Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 171/180] dm flakey: error READ bios during the down_interval Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 172/180] module: Invalidate signatures on force-loaded modules Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 173/180] be2iscsi: Fix bogus WARN_ON length check Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 174/180] squash mm: Export migrate_page_... : also make it non-static Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 175/180] HID: hid-input: Add parentheses to quell gcc warning Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 176/180] ALSA: oxygen: Fix logical-not-parentheses warning Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 177/180] net: rfkill: Do not ignore errors from regulator_enable() Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 178/180] isdn: hfcpci_softirq: get func return to suppress compiler warning Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 179/180] stb6100: fix buffer length check in stb6100_write_reg_range() Willy Tarreau
2016-08-21 15:31 ` [PATCH 3.10 180/180] spi: spi-xilinx: cleanup a check in xilinx_spi_txrx_bufs() 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=1471793510-13022-153-git-send-email-w@1wt.eu \
    --to=w@1wt.eu \
    --cc=davem@davemloft.net \
    --cc=kheiss@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --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;
as well as URLs for NNTP newsgroup(s).