mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 18:21:24 +02:00
geneve: Remove synchronize_net() in geneve_unquiesce().
When changing the geneve config, geneve_changelink() sandwiches the config memcpy() between geneve_quiesce() and geneve_unquiesce(). geneve_quiesce() temporarily clears geneve->sock[46] and their sk_user_data, and then calls synchronize_net() to wait for inflight fast paths to finish. geneve_unquiesce() then restores the cleared pointers, but it also superfluously calls synchronize_net(). The latter synchronize_net() provides no benefit; with or without it, inflight fast paths can see either the NULL pointers or the original pointers alongside the new configuration. Let's remove the redundant synchronize_net() in geneve_unquiesce(). Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com> Link: https://patch.msgid.link/20260518050726.318824-4-kuniyu@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
2f7f86db16
commit
567dbca22b
|
|
@ -2206,7 +2206,6 @@ static void geneve_unquiesce(struct geneve_dev *geneve, struct geneve_sock *gs4,
|
|||
if (gs6)
|
||||
rcu_assign_sk_user_data(gs6->sk, gs6);
|
||||
#endif
|
||||
synchronize_net();
|
||||
}
|
||||
|
||||
static int geneve_changelink(struct net_device *dev, struct nlattr *tb[],
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user