aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/net/ipv4/fib_semantics.c
diff options
context:
space:
mode:
authorKuniyuki Iwashima <kuniyu@amazon.com>2025-05-15 19:27:23 -0700
committerJakub Kicinski <kuba@kernel.org>2025-05-20 19:18:24 -0700
commit002dba13c824f1cf86f618f0d23d1f0ad3c93bbb (patch)
tree5a4aa06e78be0ed61057ec8e52ce195b77598aab /net/ipv4/fib_semantics.c
parentipv6: Pass gfp_flags down to ip6_route_info_create_nh(). (diff)
downloadwireguard-linux-002dba13c824f1cf86f618f0d23d1f0ad3c93bbb.tar.xz
wireguard-linux-002dba13c824f1cf86f618f0d23d1f0ad3c93bbb.zip
ipv6: Revert two per-cpu var allocation for RTM_NEWROUTE.
These two commits preallocated two per-cpu variables in ip6_route_info_create() as fib_nh_common_init() and fib6_nh_init() were expected to be called under RCU. * commit d27b9c40dbd6 ("ipv6: Preallocate nhc_pcpu_rth_output in ip6_route_info_create().") * commit 5720a328c3e9 ("ipv6: Preallocate rt->fib6_nh->rt6i_pcpu in ip6_route_info_create().") Now these functions can be called without RCU and can use GFP_KERNEL. Let's revert the commits. Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com> Link: https://patch.msgid.link/20250516022759.44392-8-kuniyu@amazon.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/ipv4/fib_semantics.c')
-rw-r--r--net/ipv4/fib_semantics.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
index dabe2b7044ab..d643bd1a0d9d 100644
--- a/net/ipv4/fib_semantics.c
+++ b/net/ipv4/fib_semantics.c
@@ -617,12 +617,10 @@ int fib_nh_common_init(struct net *net, struct fib_nh_common *nhc,
{
int err;
- if (!nhc->nhc_pcpu_rth_output) {
- nhc->nhc_pcpu_rth_output = alloc_percpu_gfp(struct rtable __rcu *,
- gfp_flags);
- if (!nhc->nhc_pcpu_rth_output)
- return -ENOMEM;
- }
+ nhc->nhc_pcpu_rth_output = alloc_percpu_gfp(struct rtable __rcu *,
+ gfp_flags);
+ if (!nhc->nhc_pcpu_rth_output)
+ return -ENOMEM;
if (encap) {
struct lwtunnel_state *lwtstate;