mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: alexander.levin@verizon.com
To: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"stable@vger.kernel.org" <stable@vger.kernel.org>
Cc: Eric Dumazet <edumazet@google.com>,
	"David S . Miller" <davem@davemloft.net>,
	alexander.levin@verizon.com
Subject: [PATCH AUTOSEL for 4.9 028/100] inet: frag: release spinlock before calling icmp_send()
Date: Wed, 13 Dec 2017 01:57:29 +0000	[thread overview]
Message-ID: <20171213015722.6722-3-alexander.levin@verizon.com> (raw)
In-Reply-To: <20171213015722.6722-1-alexander.levin@verizon.com>

From: Eric Dumazet <edumazet@google.com>

[ Upstream commit ec4fbd64751de18729eaa816ec69e4b504b5a7a2 ]

Dmitry reported a lockdep splat [1] (false positive) that we can fix
by releasing the spinlock before calling icmp_send() from ip_expire()

This is a false positive because sending an ICMP message can not
possibly re-enter the IP frag engine.

[1]
[ INFO: possible circular locking dependency detected ]
4.10.0+ #29 Not tainted
-------------------------------------------------------
modprobe/12392 is trying to acquire lock:
 (_xmit_ETHER#2){+.-...}, at: [<ffffffff837a8182>] spin_lock
include/linux/spinlock.h:299 [inline]
 (_xmit_ETHER#2){+.-...}, at: [<ffffffff837a8182>] __netif_tx_lock
include/linux/netdevice.h:3486 [inline]
 (_xmit_ETHER#2){+.-...}, at: [<ffffffff837a8182>]
sch_direct_xmit+0x282/0x6d0 net/sched/sch_generic.c:180

but task is already holding lock:
 (&(&q->lock)->rlock){+.-...}, at: [<ffffffff8389a4d1>] spin_lock
include/linux/spinlock.h:299 [inline]
 (&(&q->lock)->rlock){+.-...}, at: [<ffffffff8389a4d1>]
ip_expire+0x51/0x6c0 net/ipv4/ip_fragment.c:201

which lock already depends on the new lock.

the existing dependency chain (in reverse order) is:

-> #1 (&(&q->lock)->rlock){+.-...}:
       validate_chain kernel/locking/lockdep.c:2267 [inline]
       __lock_acquire+0x2149/0x3430 kernel/locking/lockdep.c:3340
       lock_acquire+0x2a1/0x630 kernel/locking/lockdep.c:3755
       __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]
       _raw_spin_lock+0x33/0x50 kernel/locking/spinlock.c:151
       spin_lock include/linux/spinlock.h:299 [inline]
       ip_defrag+0x3a2/0x4130 net/ipv4/ip_fragment.c:669
       ip_check_defrag+0x4e3/0x8b0 net/ipv4/ip_fragment.c:713
       packet_rcv_fanout+0x282/0x800 net/packet/af_packet.c:1459
       deliver_skb net/core/dev.c:1834 [inline]
       dev_queue_xmit_nit+0x294/0xa90 net/core/dev.c:1890
       xmit_one net/core/dev.c:2903 [inline]
       dev_hard_start_xmit+0x16b/0xab0 net/core/dev.c:2923
       sch_direct_xmit+0x31f/0x6d0 net/sched/sch_generic.c:182
       __dev_xmit_skb net/core/dev.c:3092 [inline]
       __dev_queue_xmit+0x13e5/0x1e60 net/core/dev.c:3358
       dev_queue_xmit+0x17/0x20 net/core/dev.c:3423
       neigh_resolve_output+0x6b9/0xb10 net/core/neighbour.c:1308
       neigh_output include/net/neighbour.h:478 [inline]
       ip_finish_output2+0x8b8/0x15a0 net/ipv4/ip_output.c:228
       ip_do_fragment+0x1d93/0x2720 net/ipv4/ip_output.c:672
       ip_fragment.constprop.54+0x145/0x200 net/ipv4/ip_output.c:545
       ip_finish_output+0x82d/0xe10 net/ipv4/ip_output.c:314
       NF_HOOK_COND include/linux/netfilter.h:246 [inline]
       ip_output+0x1f0/0x7a0 net/ipv4/ip_output.c:404
       dst_output include/net/dst.h:486 [inline]
       ip_local_out+0x95/0x170 net/ipv4/ip_output.c:124
       ip_send_skb+0x3c/0xc0 net/ipv4/ip_output.c:1492
       ip_push_pending_frames+0x64/0x80 net/ipv4/ip_output.c:1512
       raw_sendmsg+0x26de/0x3a00 net/ipv4/raw.c:655
       inet_sendmsg+0x164/0x5b0 net/ipv4/af_inet.c:761
       sock_sendmsg_nosec net/socket.c:633 [inline]
       sock_sendmsg+0xca/0x110 net/socket.c:643
       ___sys_sendmsg+0x4a3/0x9f0 net/socket.c:1985
       __sys_sendmmsg+0x25c/0x750 net/socket.c:2075
       SYSC_sendmmsg net/socket.c:2106 [inline]
       SyS_sendmmsg+0x35/0x60 net/socket.c:2101
       do_syscall_64+0x2e8/0x930 arch/x86/entry/common.c:281
       return_from_SYSCALL_64+0x0/0x7a

-> #0 (_xmit_ETHER#2){+.-...}:
       check_prev_add kernel/locking/lockdep.c:1830 [inline]
       check_prevs_add+0xa8f/0x19f0 kernel/locking/lockdep.c:1940
       validate_chain kernel/locking/lockdep.c:2267 [inline]
       __lock_acquire+0x2149/0x3430 kernel/locking/lockdep.c:3340
       lock_acquire+0x2a1/0x630 kernel/locking/lockdep.c:3755
       __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]
       _raw_spin_lock+0x33/0x50 kernel/locking/spinlock.c:151
       spin_lock include/linux/spinlock.h:299 [inline]
       __netif_tx_lock include/linux/netdevice.h:3486 [inline]
       sch_direct_xmit+0x282/0x6d0 net/sched/sch_generic.c:180
       __dev_xmit_skb net/core/dev.c:3092 [inline]
       __dev_queue_xmit+0x13e5/0x1e60 net/core/dev.c:3358
       dev_queue_xmit+0x17/0x20 net/core/dev.c:3423
       neigh_hh_output include/net/neighbour.h:468 [inline]
       neigh_output include/net/neighbour.h:476 [inline]
       ip_finish_output2+0xf6c/0x15a0 net/ipv4/ip_output.c:228
       ip_finish_output+0xa29/0xe10 net/ipv4/ip_output.c:316
       NF_HOOK_COND include/linux/netfilter.h:246 [inline]
       ip_output+0x1f0/0x7a0 net/ipv4/ip_output.c:404
       dst_output include/net/dst.h:486 [inline]
       ip_local_out+0x95/0x170 net/ipv4/ip_output.c:124
       ip_send_skb+0x3c/0xc0 net/ipv4/ip_output.c:1492
       ip_push_pending_frames+0x64/0x80 net/ipv4/ip_output.c:1512
       icmp_push_reply+0x372/0x4d0 net/ipv4/icmp.c:394
       icmp_send+0x156c/0x1c80 net/ipv4/icmp.c:754
       ip_expire+0x40e/0x6c0 net/ipv4/ip_fragment.c:239
       call_timer_fn+0x241/0x820 kernel/time/timer.c:1268
       expire_timers kernel/time/timer.c:1307 [inline]
       __run_timers+0x960/0xcf0 kernel/time/timer.c:1601
       run_timer_softirq+0x21/0x80 kernel/time/timer.c:1614
       __do_softirq+0x31f/0xbe7 kernel/softirq.c:284
       invoke_softirq kernel/softirq.c:364 [inline]
       irq_exit+0x1cc/0x200 kernel/softirq.c:405
       exiting_irq arch/x86/include/asm/apic.h:657 [inline]
       smp_apic_timer_interrupt+0x76/0xa0 arch/x86/kernel/apic/apic.c:962
       apic_timer_interrupt+0x93/0xa0 arch/x86/entry/entry_64.S:707
       __read_once_size include/linux/compiler.h:254 [inline]
       atomic_read arch/x86/include/asm/atomic.h:26 [inline]
       rcu_dynticks_curr_cpu_in_eqs kernel/rcu/tree.c:350 [inline]
       __rcu_is_watching kernel/rcu/tree.c:1133 [inline]
       rcu_is_watching+0x83/0x110 kernel/rcu/tree.c:1147
       rcu_read_lock_held+0x87/0xc0 kernel/rcu/update.c:293
       radix_tree_deref_slot include/linux/radix-tree.h:238 [inline]
       filemap_map_pages+0x6d4/0x1570 mm/filemap.c:2335
       do_fault_around mm/memory.c:3231 [inline]
       do_read_fault mm/memory.c:3265 [inline]
       do_fault+0xbd5/0x2080 mm/memory.c:3370
       handle_pte_fault mm/memory.c:3600 [inline]
       __handle_mm_fault+0x1062/0x2cb0 mm/memory.c:3714
       handle_mm_fault+0x1e2/0x480 mm/memory.c:3751
       __do_page_fault+0x4f6/0xb60 arch/x86/mm/fault.c:1397
       do_page_fault+0x54/0x70 arch/x86/mm/fault.c:1460
       page_fault+0x28/0x30 arch/x86/entry/entry_64.S:1011

other info that might help us debug this:

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(&(&q->lock)->rlock);
                               lock(_xmit_ETHER#2);
                               lock(&(&q->lock)->rlock);
  lock(_xmit_ETHER#2);

 *** DEADLOCK ***

10 locks held by modprobe/12392:
 #0:  (&mm->mmap_sem){++++++}, at: [<ffffffff81329758>]
__do_page_fault+0x2b8/0xb60 arch/x86/mm/fault.c:1336
 #1:  (rcu_read_lock){......}, at: [<ffffffff8188cab6>]
filemap_map_pages+0x1e6/0x1570 mm/filemap.c:2324
 #2:  (&(ptlock_ptr(page))->rlock#2){+.+...}, at: [<ffffffff81984a78>]
spin_lock include/linux/spinlock.h:299 [inline]
 #2:  (&(ptlock_ptr(page))->rlock#2){+.+...}, at: [<ffffffff81984a78>]
pte_alloc_one_map mm/memory.c:2944 [inline]
 #2:  (&(ptlock_ptr(page))->rlock#2){+.+...}, at: [<ffffffff81984a78>]
alloc_set_pte+0x13b8/0x1b90 mm/memory.c:3072
 #3:  (((&q->timer))){+.-...}, at: [<ffffffff81627e72>]
lockdep_copy_map include/linux/lockdep.h:175 [inline]
 #3:  (((&q->timer))){+.-...}, at: [<ffffffff81627e72>]
call_timer_fn+0x1c2/0x820 kernel/time/timer.c:1258
 #4:  (&(&q->lock)->rlock){+.-...}, at: [<ffffffff8389a4d1>] spin_lock
include/linux/spinlock.h:299 [inline]
 #4:  (&(&q->lock)->rlock){+.-...}, at: [<ffffffff8389a4d1>]
ip_expire+0x51/0x6c0 net/ipv4/ip_fragment.c:201
 #5:  (rcu_read_lock){......}, at: [<ffffffff8389a633>]
ip_expire+0x1b3/0x6c0 net/ipv4/ip_fragment.c:216
 #6:  (slock-AF_INET){+.-...}, at: [<ffffffff839b3313>] spin_trylock
include/linux/spinlock.h:309 [inline]
 #6:  (slock-AF_INET){+.-...}, at: [<ffffffff839b3313>] icmp_xmit_lock
net/ipv4/icmp.c:219 [inline]
 #6:  (slock-AF_INET){+.-...}, at: [<ffffffff839b3313>]
icmp_send+0x803/0x1c80 net/ipv4/icmp.c:681
 #7:  (rcu_read_lock_bh){......}, at: [<ffffffff838ab9a1>]
ip_finish_output2+0x2c1/0x15a0 net/ipv4/ip_output.c:198
 #8:  (rcu_read_lock_bh){......}, at: [<ffffffff836d1dee>]
__dev_queue_xmit+0x23e/0x1e60 net/core/dev.c:3324
 #9:  (dev->qdisc_running_key ?: &qdisc_running_key){+.....}, at:
[<ffffffff836d3a27>] dev_queue_xmit+0x17/0x20 net/core/dev.c:3423

stack backtrace:
CPU: 0 PID: 12392 Comm: modprobe Not tainted 4.10.0+ #29
Hardware name: Google Google Compute Engine/Google Compute Engine,
BIOS Google 01/01/2011
Call Trace:
 <IRQ>
 __dump_stack lib/dump_stack.c:16 [inline]
 dump_stack+0x2ee/0x3ef lib/dump_stack.c:52
 print_circular_bug+0x307/0x3b0 kernel/locking/lockdep.c:1204
 check_prev_add kernel/locking/lockdep.c:1830 [inline]
 check_prevs_add+0xa8f/0x19f0 kernel/locking/lockdep.c:1940
 validate_chain kernel/locking/lockdep.c:2267 [inline]
 __lock_acquire+0x2149/0x3430 kernel/locking/lockdep.c:3340
 lock_acquire+0x2a1/0x630 kernel/locking/lockdep.c:3755
 __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]
 _raw_spin_lock+0x33/0x50 kernel/locking/spinlock.c:151
 spin_lock include/linux/spinlock.h:299 [inline]
 __netif_tx_lock include/linux/netdevice.h:3486 [inline]
 sch_direct_xmit+0x282/0x6d0 net/sched/sch_generic.c:180
 __dev_xmit_skb net/core/dev.c:3092 [inline]
 __dev_queue_xmit+0x13e5/0x1e60 net/core/dev.c:3358
 dev_queue_xmit+0x17/0x20 net/core/dev.c:3423
 neigh_hh_output include/net/neighbour.h:468 [inline]
 neigh_output include/net/neighbour.h:476 [inline]
 ip_finish_output2+0xf6c/0x15a0 net/ipv4/ip_output.c:228
 ip_finish_output+0xa29/0xe10 net/ipv4/ip_output.c:316
 NF_HOOK_COND include/linux/netfilter.h:246 [inline]
 ip_output+0x1f0/0x7a0 net/ipv4/ip_output.c:404
 dst_output include/net/dst.h:486 [inline]
 ip_local_out+0x95/0x170 net/ipv4/ip_output.c:124
 ip_send_skb+0x3c/0xc0 net/ipv4/ip_output.c:1492
 ip_push_pending_frames+0x64/0x80 net/ipv4/ip_output.c:1512
 icmp_push_reply+0x372/0x4d0 net/ipv4/icmp.c:394
 icmp_send+0x156c/0x1c80 net/ipv4/icmp.c:754
 ip_expire+0x40e/0x6c0 net/ipv4/ip_fragment.c:239
 call_timer_fn+0x241/0x820 kernel/time/timer.c:1268
 expire_timers kernel/time/timer.c:1307 [inline]
 __run_timers+0x960/0xcf0 kernel/time/timer.c:1601
 run_timer_softirq+0x21/0x80 kernel/time/timer.c:1614
 __do_softirq+0x31f/0xbe7 kernel/softirq.c:284
 invoke_softirq kernel/softirq.c:364 [inline]
 irq_exit+0x1cc/0x200 kernel/softirq.c:405
 exiting_irq arch/x86/include/asm/apic.h:657 [inline]
 smp_apic_timer_interrupt+0x76/0xa0 arch/x86/kernel/apic/apic.c:962
 apic_timer_interrupt+0x93/0xa0 arch/x86/entry/entry_64.S:707
RIP: 0010:__read_once_size include/linux/compiler.h:254 [inline]
RIP: 0010:atomic_read arch/x86/include/asm/atomic.h:26 [inline]
RIP: 0010:rcu_dynticks_curr_cpu_in_eqs kernel/rcu/tree.c:350 [inline]
RIP: 0010:__rcu_is_watching kernel/rcu/tree.c:1133 [inline]
RIP: 0010:rcu_is_watching+0x83/0x110 kernel/rcu/tree.c:1147
RSP: 0000:ffff8801c391f120 EFLAGS: 00000a03 ORIG_RAX: ffffffffffffff10
RAX: dffffc0000000000 RBX: ffff8801c391f148 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 000055edd4374000 RDI: ffff8801dbe1ae0c
RBP: ffff8801c391f1a0 R08: 0000000000000002 R09: 0000000000000000
R10: dffffc0000000000 R11: 0000000000000002 R12: 1ffff10038723e25
R13: ffff8801dbe1ae00 R14: ffff8801c391f680 R15: dffffc0000000000
 </IRQ>
 rcu_read_lock_held+0x87/0xc0 kernel/rcu/update.c:293
 radix_tree_deref_slot include/linux/radix-tree.h:238 [inline]
 filemap_map_pages+0x6d4/0x1570 mm/filemap.c:2335
 do_fault_around mm/memory.c:3231 [inline]
 do_read_fault mm/memory.c:3265 [inline]
 do_fault+0xbd5/0x2080 mm/memory.c:3370
 handle_pte_fault mm/memory.c:3600 [inline]
 __handle_mm_fault+0x1062/0x2cb0 mm/memory.c:3714
 handle_mm_fault+0x1e2/0x480 mm/memory.c:3751
 __do_page_fault+0x4f6/0xb60 arch/x86/mm/fault.c:1397
 do_page_fault+0x54/0x70 arch/x86/mm/fault.c:1460
 page_fault+0x28/0x30 arch/x86/entry/entry_64.S:1011
RIP: 0033:0x7f83172f2786
RSP: 002b:00007fffe859ae80 EFLAGS: 00010293
RAX: 000055edd4373040 RBX: 00007f83175111c8 RCX: 000055edd4373238
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 00007f8317510970
RBP: 00007fffe859afd0 R08: 0000000000000009 R09: 0000000000000000
R10: 0000000000000064 R11: 0000000000000000 R12: 000055edd4373040
R13: 0000000000000000 R14: 00007fffe859afe8 R15: 0000000000000000

Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
---
 net/ipv4/ip_fragment.c | 25 +++++++++++++++++--------
 1 file changed, 17 insertions(+), 8 deletions(-)

diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c
index 453db950dc9f..4bf3b8af0257 100644
--- a/net/ipv4/ip_fragment.c
+++ b/net/ipv4/ip_fragment.c
@@ -198,6 +198,7 @@ static void ip_expire(unsigned long arg)
 	qp = container_of((struct inet_frag_queue *) arg, struct ipq, q);
 	net = container_of(qp->q.net, struct net, ipv4.frags);
 
+	rcu_read_lock();
 	spin_lock(&qp->q.lock);
 
 	if (qp->q.flags & INET_FRAG_COMPLETE)
@@ -207,7 +208,7 @@ static void ip_expire(unsigned long arg)
 	__IP_INC_STATS(net, IPSTATS_MIB_REASMFAILS);
 
 	if (!inet_frag_evicting(&qp->q)) {
-		struct sk_buff *head = qp->q.fragments;
+		struct sk_buff *clone, *head = qp->q.fragments;
 		const struct iphdr *iph;
 		int err;
 
@@ -216,32 +217,40 @@ static void ip_expire(unsigned long arg)
 		if (!(qp->q.flags & INET_FRAG_FIRST_IN) || !qp->q.fragments)
 			goto out;
 
-		rcu_read_lock();
 		head->dev = dev_get_by_index_rcu(net, qp->iif);
 		if (!head->dev)
-			goto out_rcu_unlock;
+			goto out;
+
 
 		/* skb has no dst, perform route lookup again */
 		iph = ip_hdr(head);
 		err = ip_route_input_noref(head, iph->daddr, iph->saddr,
 					   iph->tos, head->dev);
 		if (err)
-			goto out_rcu_unlock;
+			goto out;
 
 		/* Only an end host needs to send an ICMP
 		 * "Fragment Reassembly Timeout" message, per RFC792.
 		 */
 		if (frag_expire_skip_icmp(qp->user) &&
 		    (skb_rtable(head)->rt_type != RTN_LOCAL))
-			goto out_rcu_unlock;
+			goto out;
+
+		clone = skb_clone(head, GFP_ATOMIC);
 
 		/* Send an ICMP "Fragment Reassembly Timeout" message. */
-		icmp_send(head, ICMP_TIME_EXCEEDED, ICMP_EXC_FRAGTIME, 0);
-out_rcu_unlock:
-		rcu_read_unlock();
+		if (clone) {
+			spin_unlock(&qp->q.lock);
+			icmp_send(clone, ICMP_TIME_EXCEEDED,
+				  ICMP_EXC_FRAGTIME, 0);
+			consume_skb(clone);
+			goto out_rcu_unlock;
+		}
 	}
 out:
 	spin_unlock(&qp->q.lock);
+out_rcu_unlock:
+	rcu_read_unlock();
 	ipq_put(qp);
 }
 
-- 
2.11.0

  reply	other threads:[~2017-12-13  1:58 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-13  1:57 [PATCH AUTOSEL for 4.9 026/100] r8152: fix the rx early size of RTL8153 alexander.levin
2017-12-13  1:57 ` alexander.levin [this message]
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 029/100] pinctrl: st: add irq_request/release_resources callbacks alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 027/100] tipc: fix nametbl deadlock at tipc_nametbl_unsubscribe alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 030/100] scsi: lpfc: Fix PT2PT PRLI reject alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 033/100] KVM: VMX: Fix enable VPID conditions alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 031/100] kvm: vmx: Flush TLB when the APIC-access address changes alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 034/100] ARM: dts: ti: fix PCI bus dtc warnings alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 032/100] KVM: x86: correct async page present tracepoint alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 037/100] HID: xinmo: fix for out of range for THT 2P arcade controller alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 038/100] ASoC: STI: Fix reader substream pointer set alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 035/100] hwmon: (asus_atk0110) fix uninitialized data access alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 036/100] i2c: mux: pca954x: Add missing pca9546 definition to chip_desc alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 039/100] r8152: prevent the driver from transmitting packets with carrier off alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 040/100] s390/qeth: size calculation outbound buffers alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 041/100] s390/qeth: no ETH header for outbound AF_IUCV alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 042/100] bna: avoid writing uninitialized data into hw registers alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 043/100] i40iw: Receive netdev events post INET_NOTIFIER state alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 044/100] IB/core: Protect against self-requeue of a cq work item alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 045/100] infiniband: Fix alignment of mmap cookies to support VIPT caching alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 046/100] nbd: set queue timeout properly alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 049/100] IB/rxe: increment msn only when completing a request alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 050/100] i40e: Do not enable NAPI on q_vectors that have no rings alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 048/100] IB/rxe: double free on error alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 047/100] net: Do not allow negative values for busy_read and busy_poll sysctl interfaces alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 053/100] netfilter: nfnl_cthelper: fix a race when walk the nf_ct_helper_hash table alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 052/100] irda: vlsi_ir: fix check for DMA mapping errors alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 051/100] RDMA/iser: Fix possible mr leak on device removal event alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 054/100] netfilter: nf_nat_snmp: Fix panic when snmp_trap_helper fails to register alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 056/100] cpufreq: Fix creation of symbolic links to policy directories alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 055/100] ARM: dts: am335x-evmsk: adjust mmc2 param to allow suspend alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 057/100] net: ipconfig: fix ic_close_devs() use-after-free alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 061/100] isdn: kcapi: avoid uninitialized data alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 060/100] virtio_balloon: prevent uninitialized variable use alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 059/100] virtio-balloon: use actual number of stats for stats queue buffers alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 058/100] KVM: pci-assign: do not map smm memory slot pages in vt-d page tables alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 065/100] Btrfs: fix an integer overflow check alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 063/100] xhci: plat: Register shutdown for xhci_plat alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 062/100] net: moxa: fix TX overrun memory leak alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 064/100] netfilter: nfnetlink_queue: fix secctx " alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 067/100] cpuidle: powernv: Pass correct drv->cpumask for registration alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 066/100] ARM: dma-mapping: disallow dma_get_sgtable() for non-kernel managed memory alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 068/100] bnxt_en: Fix NULL pointer dereference in reopen failure path alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 069/100] backlight: pwm_bl: Fix overflow condition alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 070/100] crypto: talitos - fix ctr-aes-talitos alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 072/100] crypto: talitos - fix memory corruption on SEC2 alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 073/100] crypto: crypto4xx - increase context and scatter ring buffer elements alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 071/100] crypto: talitos - fix AEAD test failures alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 074/100] rtc: pl031: make interrupt optional alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 076/100] net: phy: at803x: Change error to EINVAL for invalid MAC alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 077/100] PCI: Avoid bus reset if bridge itself is broken alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 075/100] kvm, mm: account kvm related kmem slabs to kmemcg alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 078/100] scsi: cxgb4i: fix Tx skb leak alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 080/100] PCI: Create SR-IOV virtfn/physfn links before attaching driver alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 079/100] scsi: mpt3sas: Fix IO error occurs on pulling out a drive from RAID1 volume created on two SATA drive alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 081/100] PM / OPP: Move error message to debug level alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 082/100] igb: check memory allocation failure alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 083/100] ixgbe: fix use of uninitialized padding alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 085/100] PCI/AER: Report non-fatal errors only to the affected endpoint alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 084/100] IB/rxe: check for allocation failure on elem alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 086/100] tracing: Exclude 'generic fields' from histograms alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 089/100] powerpc/xmon: Avoid tripping SMP hardlockup watchdog alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 087/100] percpu: don't forget to free the temporary struct pcpu_alloc_info alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 088/100] ASoC: img-parallel-out: Add pm_runtime_get/put to set_fmt callback alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 093/100] vfio/pci: Virtualize Maximum Payload Size alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 092/100] scsi: lpfc: PLOGI failures during NPIV testing alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 090/100] fm10k: fix mis-ordered parameters in declaration for .ndo_set_vf_bw alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 091/100] scsi: lpfc: Fix secure firmware updates alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 096/100] staging: greybus: light: Release memory obtained by kasprintf alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 095/100] net: ipv6: send NS for DAD when link operationally up alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 097/100] clk: sunxi-ng: sun6i: Rename HDMI DDC clock to avoid name collision alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 094/100] fm10k: ensure we process SM mbx when processing VF mbx alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 100/100] cpuidle: fix broadcast control when broadcast can not be entered alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 099/100] rtc: set the alarm to the next expiring timer alexander.levin
2017-12-13  1:57 ` [PATCH AUTOSEL for 4.9 098/100] tcp: fix under-evaluated ssthresh in TCP Vegas alexander.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=20171213015722.6722-3-alexander.levin@verizon.com \
    --to=alexander.levin@verizon.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.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

all inboxes | Powered by JetHome®