From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hannes Frederic Sowa Subject: Re: [PATCH] sctp: fix possible seqlock seadlock in sctp_packet_transmit() Date: Tue, 05 Aug 2014 17:03:28 +0200 Message-ID: <1407251008.8179.5.camel@localhost> References: <20140805134115.GA25110@redhat.com> <1407250192.3178.86.camel@edumazet-glaptop2.roam.corp.google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Cc: Dave Jones , Vlad Yasevich , David Miller , netdev@vger.kernel.org, Neil Horman , linux-sctp@vger.kernel.org To: Eric Dumazet Return-path: Received: from out1-smtp.messagingengine.com ([66.111.4.25]:52646 "EHLO out1-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754727AbaHEPDc (ORCPT ); Tue, 5 Aug 2014 11:03:32 -0400 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by gateway1.nyi.internal (Postfix) with ESMTP id 4E57523385 for ; Tue, 5 Aug 2014 11:03:30 -0400 (EDT) In-Reply-To: <1407250192.3178.86.camel@edumazet-glaptop2.roam.corp.google.com> Sender: netdev-owner@vger.kernel.org List-ID: On Di, 2014-08-05 at 16:49 +0200, Eric Dumazet wrote: > From: Eric Dumazet > > Dave reported following splat, caused by improper use of > IP_INC_STATS_BH() in process context. > > BUG: using __this_cpu_add() in preemptible [00000000] code: trinity-c117/14551 > caller is __this_cpu_preempt_check+0x13/0x20 > CPU: 3 PID: 14551 Comm: trinity-c117 Not tainted 3.16.0+ #33 > ffffffff9ec898f0 0000000047ea7e23 ffff88022d32f7f0 ffffffff9e7ee207 > 0000000000000003 ffff88022d32f818 ffffffff9e397eaa ffff88023ee70b40 > ffff88022d32f970 ffff8801c026d580 ffff88022d32f828 ffffffff9e397ee3 > Call Trace: > [] dump_stack+0x4e/0x7a > [] check_preemption_disabled+0xfa/0x100 > [] __this_cpu_preempt_check+0x13/0x20 > [] sctp_packet_transmit+0x692/0x710 [sctp] > [] sctp_outq_flush+0x2a2/0xc30 [sctp] > [] ? mark_held_locks+0x7c/0xb0 > [] ? _raw_spin_unlock_irqrestore+0x5d/0x80 > [] sctp_outq_uncork+0x1a/0x20 [sctp] > [] sctp_cmd_interpreter.isra.23+0x1142/0x13f0 [sctp] > [] sctp_do_sm+0xdb/0x330 [sctp] > [] ? preempt_count_sub+0xab/0x100 > [] ? sctp_cname+0x70/0x70 [sctp] > [] sctp_primitive_ASSOCIATE+0x3a/0x50 [sctp] > [] sctp_sendmsg+0x88f/0xe30 [sctp] > [] ? lock_release_holdtime.part.28+0x9a/0x160 > [] ? put_lock_stats.isra.27+0xe/0x30 > [] inet_sendmsg+0x104/0x220 > [] ? inet_sendmsg+0x5/0x220 > [] sock_sendmsg+0x9e/0xe0 > [] ? might_fault+0xb9/0xc0 > [] ? might_fault+0x5e/0xc0 > [] SYSC_sendto+0x124/0x1c0 > [] ? syscall_trace_enter+0x250/0x330 > [] SyS_sendto+0xe/0x10 > [] tracesys+0xdd/0xe2 > > This is a followup of commits f1d8cba61c3c4b ("inet: fix possible > seqlock deadlocks") and 7f88c6b23afbd315 ("ipv6: fix possible seqlock > deadlock in ip6_finish_output2") > > Signed-off-by: Eric Dumazet > Cc: Hannes Frederic Sowa > Reported-by: Dave Jones Exactly! Acked-by: Hannes Frederic Sowa