Files
android_kernel_xiaomi_sm8450/include/linux
Florian Fainelli 9fb20801da net: Fix ip_mc_{dec,inc}_group allocation context
After 4effd28c12 ("bridge: join all-snoopers multicast address"), I
started seeing the following sleep in atomic warnings:

[   26.763893] BUG: sleeping function called from invalid context at mm/slab.h:421
[   26.771425] in_atomic(): 1, irqs_disabled(): 0, pid: 1658, name: sh
[   26.777855] INFO: lockdep is turned off.
[   26.781916] CPU: 0 PID: 1658 Comm: sh Not tainted 5.0.0-rc4 #20
[   26.787943] Hardware name: BCM97278SV (DT)
[   26.792118] Call trace:
[   26.794645]  dump_backtrace+0x0/0x170
[   26.798391]  show_stack+0x24/0x30
[   26.801787]  dump_stack+0xa4/0xe4
[   26.805182]  ___might_sleep+0x208/0x218
[   26.809102]  __might_sleep+0x78/0x88
[   26.812762]  kmem_cache_alloc_trace+0x64/0x28c
[   26.817301]  igmp_group_dropped+0x150/0x230
[   26.821573]  ip_mc_dec_group+0x1b0/0x1f8
[   26.825585]  br_ip4_multicast_leave_snoopers.isra.11+0x174/0x190
[   26.831704]  br_multicast_toggle+0x78/0xcc
[   26.835887]  store_bridge_parm+0xc4/0xfc
[   26.839894]  multicast_snooping_store+0x3c/0x4c
[   26.844517]  dev_attr_store+0x44/0x5c
[   26.848262]  sysfs_kf_write+0x50/0x68
[   26.852006]  kernfs_fop_write+0x14c/0x1b4
[   26.856102]  __vfs_write+0x60/0x190
[   26.859668]  vfs_write+0xc8/0x168
[   26.863059]  ksys_write+0x70/0xc8
[   26.866449]  __arm64_sys_write+0x24/0x30
[   26.870458]  el0_svc_common+0xa0/0x11c
[   26.874291]  el0_svc_handler+0x38/0x70
[   26.878120]  el0_svc+0x8/0xc

while toggling the bridge's multicast_snooping attribute dynamically.

Pass a gfp_t down to igmpv3_add_delrec(), introduce
__igmp_group_dropped() and introduce __ip_mc_dec_group() to take a gfp_t
argument.

Similarly introduce ____ip_mc_inc_group() and __ip_mc_inc_group() to
allow caller to specify gfp_t.

IPv6 part of the patch appears fine.

Fixes: 4effd28c12 ("bridge: join all-snoopers multicast address")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-02-03 12:11:12 -08:00
..
2018-11-14 10:56:33 -08:00
2018-12-11 09:57:47 -08:00
2018-10-16 11:13:50 +02:00
2018-11-12 10:33:49 +01:00
2019-01-28 10:58:41 -08:00
2019-01-21 11:15:36 +01:00
2018-11-26 18:41:21 -05:00
2018-12-07 22:26:38 -07:00
2019-01-24 11:11:45 -07:00
2018-11-07 13:44:59 -07:00
2018-11-07 13:44:59 -07:00
2018-12-18 17:50:47 +01:00
2019-02-01 20:55:38 +01:00
2019-02-01 20:55:39 +01:00
2019-02-01 20:55:38 +01:00
2018-09-06 15:12:24 -06:00
2018-08-22 10:52:48 -07:00
2018-12-03 17:40:18 +01:00
2018-11-13 21:55:24 +01:00
2019-01-31 10:31:53 +01:00
2018-12-19 10:42:08 +01:00
2018-12-28 16:55:46 -08:00
2018-07-27 09:57:23 +10:00
2018-12-28 12:11:52 -08:00
2018-11-10 08:03:52 -07:00
2018-10-21 10:46:33 -04:00
2018-12-07 12:59:08 -08:00
2018-11-07 13:42:32 -07:00
2018-11-19 19:03:46 -07:00
2018-12-06 13:57:03 +01:00
2018-11-30 13:29:04 +00:00
2019-01-04 13:13:48 -08:00
2019-01-04 13:13:48 -08:00
2018-10-17 13:56:58 -07:00
2018-08-22 10:52:45 -07:00
2018-12-13 09:58:57 +01:00
2018-12-06 15:45:46 +01:00
2018-10-21 10:46:39 -04:00
2018-09-18 17:52:15 -05:00
2018-10-26 16:26:35 -07:00
2018-07-21 10:43:12 -05:00
2018-10-08 22:53:10 +11:00
2018-08-22 10:52:46 -07:00
2018-12-03 17:11:02 -08:00
2018-07-20 01:11:45 +02:00
2018-08-02 17:33:06 -04:00
2019-01-07 16:38:26 +01:00
2018-09-25 20:17:35 -07:00
2018-12-21 11:50:02 -05:00
2018-12-06 17:22:53 +01:00
2019-02-03 11:17:31 -08:00
2019-02-03 11:17:31 -08:00
2018-08-16 12:14:42 -07:00
2018-09-29 22:47:49 -04:00
2018-10-11 09:16:44 -07:00
2018-12-10 10:17:45 +01:00
2018-09-25 20:33:24 +02:00
2019-01-11 18:05:40 -08:00
2018-09-11 14:11:51 +02:00
2018-12-22 12:15:29 +01:00