Eric Dumazet
757efd32d5
sctp: fix possible seqlock seadlock in sctp_packet_transmit()
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:
[<ffffffff9e7ee207>] dump_stack+0x4e/0x7a
[<ffffffff9e397eaa>] check_preemption_disabled+0xfa/0x100
[<ffffffff9e397ee3>] __this_cpu_preempt_check+0x13/0x20
[<ffffffffc0839872>] sctp_packet_transmit+0x692/0x710 [sctp]
[<ffffffffc082a7f2>] sctp_outq_flush+0x2a2/0xc30 [sctp]
[<ffffffff9e0d985c>] ? mark_held_locks+0x7c/0xb0
[<ffffffff9e7f8c6d>] ? _raw_spin_unlock_irqrestore+0x5d/0x80
[<ffffffffc082b99a>] sctp_outq_uncork+0x1a/0x20 [sctp]
[<ffffffffc081e112>] sctp_cmd_interpreter.isra.23+0x1142/0x13f0 [sctp]
[<ffffffffc081c86b>] sctp_do_sm+0xdb/0x330 [sctp]
[<ffffffff9e0b8f1b>] ? preempt_count_sub+0xab/0x100
[<ffffffffc083b350>] ? sctp_cname+0x70/0x70 [sctp]
[<ffffffffc08389ca>] sctp_primitive_ASSOCIATE+0x3a/0x50 [sctp]
[<ffffffffc083358f>] sctp_sendmsg+0x88f/0xe30 [sctp]
[<ffffffff9e0d673a>] ? lock_release_holdtime.part.28+0x9a/0x160
[<ffffffff9e0d62ce>] ? put_lock_stats.isra.27+0xe/0x30
[<ffffffff9e73b624>] inet_sendmsg+0x104/0x220
[<ffffffff9e73b525>] ? inet_sendmsg+0x5/0x220
[<ffffffff9e68ac4e>] sock_sendmsg+0x9e/0xe0
[<ffffffff9e1c0c09>] ? might_fault+0xb9/0xc0
[<ffffffff9e1c0bae>] ? might_fault+0x5e/0xc0
[<ffffffff9e68b234>] SYSC_sendto+0x124/0x1c0
[<ffffffff9e0136b0>] ? syscall_trace_enter+0x250/0x330
[<ffffffff9e68c3ce>] SyS_sendto+0xe/0x10
[<ffffffff9e7f9be4>] tracesys+0xdd/0xe2
This is a followup of commits f1d8cba61c ("inet: fix possible
seqlock deadlocks") and 7f88c6b23a ("ipv6: fix possible seqlock
deadlock in ip6_finish_output2")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
Reported-by: Dave Jones <davej@redhat.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-08-05 16:42:55 -07:00
..
2014-04-11 14:14:57 -07:00
2014-01-16 11:31:58 -08:00
2014-07-02 17:02:05 -07:00
2014-07-08 19:39:43 -07:00
2014-06-12 14:27:40 -07:00
2014-04-11 16:15:36 -04:00
2014-08-05 09:12:16 +02:00
2014-06-20 13:53:54 +02:00
2014-07-31 12:18:44 -07:00
2014-04-11 16:15:36 -04:00
2014-05-19 09:38:24 +02:00
2014-06-12 23:06:23 -07:00
2014-07-31 22:28:39 -07:00
2014-04-24 13:44:54 -04:00
2014-05-23 16:28:53 -04:00
2014-05-23 16:28:53 -04:00
2014-07-20 22:33:32 -07:00
2014-05-24 00:32:30 -04:00
2014-01-16 15:30:31 -08:00
2014-03-27 15:28:06 -04:00
2014-06-02 10:39:42 -07:00
2014-07-30 17:31:06 -07:00
2014-08-02 16:16:54 -07:00
2014-05-23 16:28:53 -04:00
2014-01-18 23:04:16 -08:00
2014-05-30 17:35:23 -07:00
2014-05-30 17:48:58 -07:00
2014-07-14 17:02:31 -07:00
2013-09-23 16:52:45 -04:00
2014-01-28 18:01:32 -08:00
2014-07-22 22:17:17 +02:00
2014-06-11 12:10:19 -07:00
2014-06-04 22:46:38 -07:00
2014-08-01 18:14:49 +02:00
2013-12-06 12:37:56 -05:00
2014-07-09 14:33:47 -07:00
2014-04-11 16:15:36 -04:00
2014-06-11 15:38:02 -07:00
2014-06-30 20:47:15 -07:00
2014-04-24 13:44:54 -04:00
2014-04-24 13:44:54 -04:00
2014-06-12 14:27:40 -07:00
2014-05-22 13:58:36 -04:00
2014-04-11 16:15:36 -04:00
2014-05-16 15:24:47 -04:00
2014-07-20 20:49:17 -07:00
2014-08-05 16:42:55 -07:00
2014-06-24 18:46:58 -04:00
2014-07-11 15:02:10 -07:00
2014-06-12 14:27:40 -07:00
2014-05-05 13:13:50 -04:00
2013-11-21 13:09:42 -05:00
2014-07-18 09:53:56 +02:00
2014-04-11 16:15:36 -04:00
2014-06-30 07:42:12 +02:00
2014-07-29 12:20:22 -07:00
2014-04-03 13:05:42 -07:00
2014-01-15 15:36:38 -08:00
2014-04-16 15:15:05 -04:00
2013-10-07 15:57:56 -04:00