Eric Dumazet
fd32f1eee6
ipv6: remove nexthop_fib6_nh_bh()
commit ef1148d4487438a3408d6face2a8360d91b4af70 upstream.
After blamed commit, nexthop_fib6_nh_bh() and nexthop_fib6_nh()
are the same.
Delete nexthop_fib6_nh_bh(), and convert /proc/net/ipv6_route
to standard rcu to avoid this splat:
[ 5723.180080] WARNING: suspicious RCU usage
[ 5723.180083] -----------------------------
[ 5723.180084] include/net/nexthop.h:516 suspicious rcu_dereference_check() usage!
[ 5723.180086]
other info that might help us debug this:
[ 5723.180087]
rcu_scheduler_active = 2, debug_locks = 1
[ 5723.180089] 2 locks held by cat/55856:
[ 5723.180091] #0: ffff9440a582afa8 (&p->lock){+.+.}-{3:3}, at: seq_read_iter (fs/seq_file.c:188)
[ 5723.180100] #1: ffffffffaac07040 (rcu_read_lock_bh){....}-{1:2}, at: rcu_lock_acquire (include/linux/rcupdate.h:326)
[ 5723.180109]
stack backtrace:
[ 5723.180111] CPU: 14 PID: 55856 Comm: cat Tainted: G S I 6.3.0-dbx-DEV #528
[ 5723.180115] Call Trace:
[ 5723.180117] <TASK>
[ 5723.180119] dump_stack_lvl (lib/dump_stack.c:107)
[ 5723.180124] dump_stack (lib/dump_stack.c:114)
[ 5723.180126] lockdep_rcu_suspicious (include/linux/context_tracking.h:122)
[ 5723.180132] ipv6_route_seq_show (include/net/nexthop.h:?)
[ 5723.180135] ? ipv6_route_seq_next (net/ipv6/ip6_fib.c:2605)
[ 5723.180140] seq_read_iter (fs/seq_file.c:272)
[ 5723.180145] seq_read (fs/seq_file.c:163)
[ 5723.180151] proc_reg_read (fs/proc/inode.c:316 fs/proc/inode.c:328)
[ 5723.180155] vfs_read (fs/read_write.c:468)
[ 5723.180160] ? up_read (kernel/locking/rwsem.c:1617)
[ 5723.180164] ksys_read (fs/read_write.c:613)
[ 5723.180168] __x64_sys_read (fs/read_write.c:621)
[ 5723.180170] do_syscall_64 (arch/x86/entry/common.c:?)
[ 5723.180174] entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:120)
[ 5723.180177] RIP: 0033:0x7fa455677d2a
Fixes: 09eed1192cec ("neighbour: switch to standard rcu, instead of rcu_bh")
Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: David Ahern <dsahern@kernel.org>
Link: https://lore.kernel.org/r/20230510154646.370659-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-10-10 22:00:46 +02:00
..
2022-10-05 07:05:41 +09:00
2023-07-27 08:50:47 +02:00
2021-07-01 13:19:48 -07:00
2021-11-19 11:52:25 +00:00
2023-10-06 14:57:02 +02:00
2023-06-14 11:15:17 +02:00
2021-11-17 20:17:05 -08:00
2022-07-22 12:53:22 +01:00
2023-03-11 13:55:26 +01:00
2023-03-11 13:55:28 +01:00
2022-09-09 08:24:41 +01:00
2022-07-28 10:42:44 -07:00
2022-09-01 11:44:13 +01:00
2022-06-22 12:59:43 +01:00
2022-08-23 10:43:11 +02:00
2022-07-22 12:53:22 +01:00
2023-10-10 22:00:42 +02:00
2022-07-28 22:06:15 -07:00
2022-08-09 22:14:02 -07:00
2021-12-13 12:34:09 +00:00
2022-09-16 14:34:01 +01:00
2023-05-11 23:03:41 +09:00
2022-07-22 12:53:22 +01:00
2023-08-30 16:11:04 +02:00
2021-03-26 17:43:55 +01:00
2022-08-24 13:46:58 +01:00
2023-10-10 22:00:40 +02:00
2022-05-22 21:51:54 +01:00
2022-03-11 10:57:22 +00:00
2021-12-22 15:03:47 -08:00
2022-07-22 12:53:22 +01:00
2021-12-22 15:03:51 -08:00
2022-07-24 18:39:17 -06:00
2022-07-22 12:53:22 +01:00
2022-07-22 12:53:22 +01:00
2022-07-22 12:53:22 +01:00
2022-09-30 18:17:16 -07:00
2022-09-07 15:28:08 +01:00
2022-09-30 18:17:17 -07:00
2021-11-29 19:50:45 -08:00
2022-10-03 07:52:13 +01:00
2022-12-31 13:33:02 +01:00
2022-07-22 12:53:22 +01:00
2022-07-22 12:53:22 +01:00
2022-07-22 12:53:22 +01:00
2021-12-06 16:06:02 -08:00
2021-12-16 07:18:35 -08:00
2022-07-28 22:21:54 -07:00
2022-09-20 09:13:38 +02:00
2022-09-20 09:13:38 +02:00
2022-10-03 12:41:59 +01:00
2022-07-11 19:49:38 -07:00
2022-07-22 12:53:22 +01:00
2022-07-22 12:53:22 +01:00
2021-10-18 12:54:41 +01:00
2022-10-24 19:08:46 -07:00
2022-08-25 16:07:42 -07:00
2022-07-22 12:53:22 +01:00
2022-07-22 12:53:22 +01:00
2022-07-22 12:53:22 +01:00
2021-06-28 14:29:45 -07:00
2022-02-04 16:25:21 +01:00
2022-10-07 08:42:00 +01:00
2022-04-06 22:09:39 -07:00
2022-07-22 12:53:22 +01:00
2022-07-22 12:53:22 +01:00
2022-07-29 11:58:54 +01:00
2022-07-22 12:53:22 +01:00
2022-08-24 19:30:07 -07:00
2022-02-07 20:12:45 -08:00
2021-10-15 11:33:08 +01:00
2022-07-22 12:53:22 +01:00
2023-01-12 12:02:15 +01:00
2023-08-30 16:11:02 +02:00
2023-01-12 12:02:15 +01:00
2022-02-17 07:00:39 -06:00
2021-11-16 13:16:54 +00:00
2023-09-19 12:28:10 +02:00
2022-07-22 12:53:22 +01:00
2022-04-25 11:40:45 +01:00
2023-09-19 12:28:01 +02:00
2023-09-19 12:28:03 +02:00
2023-05-24 17:32:39 +01:00
2023-09-19 12:28:01 +02:00
2022-09-29 07:18:00 +02:00
2022-07-22 12:53:22 +01:00
2022-02-04 14:15:11 -08:00
2022-09-02 20:34:32 -07:00
2023-09-19 12:28:10 +02:00
2021-03-23 14:14:50 -07:00
2022-07-22 12:53:22 +01:00
2022-07-22 12:53:22 +01:00
2021-12-07 20:44:59 -08:00
2021-10-13 09:40:46 -07:00
2021-07-27 13:05:56 +01:00
2022-07-22 12:53:22 +01:00
2022-07-22 12:53:22 +01:00
2022-07-28 11:29:36 +02:00
2021-11-07 19:25:29 +00:00
2023-09-13 09:42:33 +02:00
2023-09-13 09:42:34 +02:00
2022-04-25 20:51:12 +02:00
2022-09-23 06:56:08 -07:00
2022-04-01 12:04:15 +01:00
2021-10-29 13:23:51 +01:00
2021-03-26 15:14:56 -07:00
2022-07-22 12:53:22 +01:00
2023-01-07 11:11:44 +01:00
2022-12-31 13:33:02 +01:00
2022-07-22 12:53:22 +01:00
2023-10-10 22:00:42 +02:00
2023-10-10 22:00:42 +02:00
2022-05-11 12:43:10 +01:00
2022-07-11 16:25:14 +02:00
2021-12-10 06:38:26 -08:00
2022-07-22 12:53:22 +01:00
2023-10-10 22:00:44 +02:00
2022-07-22 12:53:22 +01:00
2023-10-10 22:00:46 +02:00
2022-09-02 19:59:08 -07:00
2022-07-22 12:53:22 +01:00
2023-06-05 09:26:20 +02:00
2023-06-14 11:15:16 +02:00
2022-10-02 16:07:17 +01:00
2023-07-23 13:49:27 +02:00
2022-07-22 12:53:22 +01:00
2022-07-15 18:50:35 -07:00
2021-08-09 15:34:21 -07:00
2022-07-22 12:53:22 +01:00
2023-04-13 16:55:23 +02:00
2022-06-19 10:00:02 +01:00
2022-10-11 17:42:58 -06:00
2023-07-19 16:21:10 +02:00
2022-02-02 14:45:18 +00:00
2022-08-01 11:59:23 -07:00
2023-08-11 12:08:14 +02:00
2023-06-14 11:15:20 +02:00
2023-08-30 16:11:02 +02:00
2023-06-21 16:01:01 +02:00
2023-05-11 23:03:18 +09:00
2022-07-22 12:53:22 +01:00
2022-01-04 12:17:35 +00:00
2021-04-28 14:06:45 -07:00
2022-07-27 13:24:42 +01:00
2022-12-31 13:32:04 +01:00
2023-09-19 12:28:01 +02:00
2021-08-03 13:05:26 +01:00
2022-07-22 12:53:22 +01:00
2022-07-18 11:24:10 +01:00
2022-06-29 20:37:36 -07:00
2023-10-10 22:00:43 +02:00
2023-06-05 09:26:18 +02:00
2022-07-22 12:53:22 +01:00
2022-07-22 12:53:22 +01:00
2022-09-01 11:42:12 +01:00
2022-10-12 17:50:37 -07:00
2022-10-12 17:50:37 -07:00
2023-08-11 12:08:17 +02:00
2022-07-22 12:53:22 +01:00
2022-09-30 07:55:46 -07:00
2021-12-29 08:48:14 -08:00
2022-09-26 13:28:19 -07:00
2023-06-28 11:12:28 +02:00
2023-05-11 23:03:21 +09:00