Ani Sinha
44f49dd8b5
ipmr: fix possible race resulting from improper usage of IP_INC_STATS_BH() in preemptible context.
Fixes the following kernel BUG :
BUG: using __this_cpu_add() in preemptible [00000000] code: bash/2758
caller is __this_cpu_preempt_check+0x13/0x15
CPU: 0 PID: 2758 Comm: bash Tainted: P O 3.18.19 #2
ffffffff8170eaca ffff880110d1b788 ffffffff81482b2a 0000000000000000
0000000000000000 ffff880110d1b7b8 ffffffff812010ae ffff880007cab800
ffff88001a060800 ffff88013a899108 ffff880108b84240 ffff880110d1b7c8
Call Trace:
[<ffffffff81482b2a>] dump_stack+0x52/0x80
[<ffffffff812010ae>] check_preemption_disabled+0xce/0xe1
[<ffffffff812010d4>] __this_cpu_preempt_check+0x13/0x15
[<ffffffff81419d60>] ipmr_queue_xmit+0x647/0x70c
[<ffffffff8141a154>] ip_mr_forward+0x32f/0x34e
[<ffffffff8141af76>] ip_mroute_setsockopt+0xe03/0x108c
[<ffffffff810553fc>] ? get_parent_ip+0x11/0x42
[<ffffffff810e6974>] ? pollwake+0x4d/0x51
[<ffffffff81058ac0>] ? default_wake_function+0x0/0xf
[<ffffffff810553fc>] ? get_parent_ip+0x11/0x42
[<ffffffff810613d9>] ? __wake_up_common+0x45/0x77
[<ffffffff81486ea9>] ? _raw_spin_unlock_irqrestore+0x1d/0x32
[<ffffffff810618bc>] ? __wake_up_sync_key+0x4a/0x53
[<ffffffff8139a519>] ? sock_def_readable+0x71/0x75
[<ffffffff813dd226>] do_ip_setsockopt+0x9d/0xb55
[<ffffffff81429818>] ? unix_seqpacket_sendmsg+0x3f/0x41
[<ffffffff813963fe>] ? sock_sendmsg+0x6d/0x86
[<ffffffff813959d4>] ? sockfd_lookup_light+0x12/0x5d
[<ffffffff8139650a>] ? SyS_sendto+0xf3/0x11b
[<ffffffff810d5738>] ? new_sync_read+0x82/0xaa
[<ffffffff813ddd19>] compat_ip_setsockopt+0x3b/0x99
[<ffffffff813fb24a>] compat_raw_setsockopt+0x11/0x32
[<ffffffff81399052>] compat_sock_common_setsockopt+0x18/0x1f
[<ffffffff813c4d05>] compat_SyS_setsockopt+0x1a9/0x1cf
[<ffffffff813c4149>] compat_SyS_socketcall+0x180/0x1e3
[<ffffffff81488ea1>] cstar_dispatch+0x7/0x1e
Signed-off-by: Ani Sinha <ani@arista.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-11-02 15:57:12 -05:00
..
2015-08-11 22:05:36 +02:00
2015-08-30 18:12:36 -04:00
2015-03-02 16:43:41 -05:00
2015-08-18 11:55:06 -07:00
2015-05-11 10:50:17 -04:00
2015-09-17 22:13:32 -07:00
2015-07-15 15:59:58 -07:00
2015-08-27 20:15:34 +02:00
2015-10-16 09:24:41 +02:00
2015-09-11 15:08:20 -07:00
2015-08-18 11:55:07 -07:00
2015-07-12 21:13:22 +02:00
2015-10-16 16:49:01 +02:00
2015-10-22 19:39:25 -07:00
2015-03-06 21:50:02 -05:00
2015-09-21 16:32:29 -07:00
2015-09-09 14:19:50 -07:00
2015-10-07 04:56:11 -07:00
2015-09-01 15:06:22 -07:00
2015-08-18 11:55:07 -07:00
2015-08-29 13:15:03 -07:00
2015-11-02 15:57:12 -05:00
2015-10-29 07:01:50 -07:00
2015-05-11 10:50:17 -04:00
2015-10-21 07:48:26 -07:00
2015-05-11 10:50:17 -04:00
2015-10-23 03:05:19 -07:00
2015-09-28 22:39:10 -07:00
2015-07-27 01:06:53 -07:00
2015-10-13 10:30:56 +02:00
2015-08-10 20:43:06 +02:00
2015-08-31 12:45:09 -07:00
2015-10-17 13:01:24 +02:00
2015-03-31 13:58:35 -04:00
2015-10-22 07:18:28 -07:00
2015-06-18 21:14:32 +02:00
2015-08-20 22:00:11 +02:00
2015-10-27 19:32:18 -07:00
2015-09-23 14:33:55 -07:00
2015-05-11 10:50:17 -04:00
2015-10-27 19:46:34 -07:00
2015-09-04 14:26:56 +02:00
2015-06-24 02:58:51 -07:00
2015-05-11 10:50:17 -04:00
2015-10-11 04:49:33 -07:00
2015-09-28 22:52:21 -07:00
2015-10-15 13:44:35 -07:00
2015-10-13 04:43:24 -07:00
2015-11-01 12:04:29 -05:00
2015-10-05 06:33:09 -07:00
2015-10-22 18:26:29 -07:00
2015-08-09 22:43:52 -07:00
2015-09-04 14:29:25 +02:00
2015-05-11 10:50:17 -04:00
2015-09-29 11:45:55 +02:00
2015-04-09 00:02:26 -04:00
2015-07-21 10:39:03 -07:00
2015-03-04 00:26:06 -05:00
2015-05-11 10:50:17 -04:00
2015-10-23 06:22:08 -07:00