From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pg1-f201.google.com (mail-pg1-f201.google.com [209.85.215.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B1F373A5E80 for ; Tue, 2 Jun 2026 19:04:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780427082; cv=none; b=raFgqeQDDwFjTxVOawaNlEnEzathmiD5AHHzHmQoJ8z4ybgtbyi8DNiavMKQBoahZlKl5qxabNjp/ZnfNh8XGqi8WftkVnXfm5rwkcO1WMgdsOGyY+roPBUaetn/0k7PTXCMeEzF1dkmUQIDMWn9XtdM3U65o8HKQKD4U4+fanY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780427082; c=relaxed/simple; bh=9Yo/TVlY4TGAmeXw5J83bBJGEmsQCRKefnxUSX6pvWI=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=IiJL20XIxxpbWqU8e3Dz+E8spg1aojXckJx8tGx/bCDV50GhtuoVuDdKkOGaHmuEbBrt8Bc6RKv0GSJdSjx6oHbjjjlUTMXrfnsg052rwTDvdyqU1icFmsfR7SNqG10MmlY0mYxXabW62JBSJ3wcUZdpeRe7S2VTNlYbAB4tIhs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--kuniyu.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=NsyqpKPj; arc=none smtp.client-ip=209.85.215.201 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--kuniyu.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="NsyqpKPj" Received: by mail-pg1-f201.google.com with SMTP id 41be03b00d2f7-c856470fe9fso3651829a12.2 for ; Tue, 02 Jun 2026 12:04:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1780427081; x=1781031881; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=8sRIbUudhuC9QSnfpjJ5+uQ9wbLrhawuW8vZsptn08E=; b=NsyqpKPjq0wy2VzouX7IVj+QocPmqpniR6oNjo1WwUImC5P1t+sb7md8nQnQIRP3ay KfQn34rRWIvfB/ngyvI8zSlxbgYe/3kMsMFjeLnggSUBw3UCdUMPC2Q9tWFm4DFsse+7 qoXcP6qpAkQI1gM0ADXhkVaHx2wc76Bsvhm7HAAPlWHP2vYTy3U9PQ0KQblatw44f5f+ XWaO5palMKvIF0cL3brRSbtoVKop8z3pmwIjQiQpeQGtfpzgk1DsWlmi1LlxQMDTkZHm B0nj5WU/ashSxHdWkEmZ+aVUslfhX9ph1H1UcLMCDRC4IwsqkzeWHTymwC8vwaXJlCFP m5cQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780427081; x=1781031881; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=8sRIbUudhuC9QSnfpjJ5+uQ9wbLrhawuW8vZsptn08E=; b=HpxEpYpqqYMGTdo7BoXAxPJrhKOj2YihG65URcQBq3UEQ8UJAkj1CEQZif3FIWzKXo 6+YNjZUoQR3HAraQiAvXfW+yjpPPXmhIqqWhbMYecyqn9hZsClrWeUs80VFWKMTxZR9x Rhsgfa7a5t3vwRjvKIpXLPcUb0P8iym7M2eTX8akoCYg0hLlJi0tuee9v5X6j2S3u9gd l8mHKE5LwV3fEhy5jqMHzyDqDSnM5SQz/aAlwNNIos4IIQM/dPPu10vFlzDS1RH+ZcUK bLw+Y8x+nNZJ4SF3nPwLA94ePdX1E+zFTjfxWmYfyVj2J+1+3WqLwV73HY7Cygcg9f5M +5qA== X-Forwarded-Encrypted: i=1; AFNElJ/VIiPyhJs+W1RS//2kW2WiGzvWmMn6lMrH/V4Y92mUJXrBOH6+K2K6BMC7jlAkTQNg6LUxwEU=@vger.kernel.org X-Gm-Message-State: AOJu0YwAs3qTxeaAFwccr6VNp5sO5fXt+aCVanpQG9j1n7pMs0RxSOGF YhSP3JUbZ38y+/m2S8IUZdVSNWOiJUs02WMbW9YMQEXOpfASCQchDq01G8ieaeUf3priwUOreHl YULuwsQ== X-Received: from pggh22.prod.google.com ([2002:a63:c016:0:b0:c80:1ab9:b111]) (user=kuniyu job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a21:4d8c:b0:3a2:7ef4:81d9 with SMTP id adf61e73a8af0-3b4977b0970mr139893637.44.1780427080666; Tue, 02 Jun 2026 12:04:40 -0700 (PDT) Date: Tue, 2 Jun 2026 19:03:43 +0000 In-Reply-To: <20260602190436.139591-1-kuniyu@google.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260602190436.139591-1-kuniyu@google.com> X-Mailer: git-send-email 2.54.0.1013.g208068f2d8-goog Message-ID: <20260602190436.139591-4-kuniyu@google.com> Subject: [PATCH v5 net-next 3/5] geneve: Pass struct geneve_dev to geneve_find_sock(). From: Kuniyuki Iwashima To: Andrew Lunn , "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Simon Horman , David Ahern , Stephen Hemminger , Kuniyuki Iwashima , Kuniyuki Iwashima , netdev@vger.kernel.org Content-Type: text/plain; charset="UTF-8" This is a prep patch to make a subsequent patch clean. We will need to access geneve_dev->cfg.info.key.u.{ipv4,ipv6}.src in geneve_find_sock() later and extend conditions there. Let's pass down struct geneve from geneve_sock_add() to geneve_find_sock() and flatten the conditional logic. Signed-off-by: Kuniyuki Iwashima --- drivers/net/geneve.c | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c index 7e8c3023842e..4f841eced028 100644 --- a/drivers/net/geneve.c +++ b/drivers/net/geneve.c @@ -1040,35 +1040,41 @@ static void geneve_sock_release(struct geneve_dev *geneve) #endif } -static struct geneve_sock *geneve_find_sock(struct geneve_net *gn, - sa_family_t family, - __be16 dst_port, - bool gro_hint) +static struct geneve_sock *geneve_find_sock(struct net *net, + struct geneve_dev *geneve, bool ipv6) { + struct geneve_net *gn = net_generic(net, geneve_net_id); + struct ip_tunnel_info *info = &geneve->cfg.info; + sa_family_t family = ipv6 ? AF_INET6 : AF_INET; + bool gro_hint = geneve->cfg.gro_hint; + __be16 dst_port = info->key.tp_dst; struct geneve_sock *gs; list_for_each_entry(gs, &gn->sock_list, list) { - if (inet_sk(gs->sk)->inet_sport == dst_port && - geneve_get_sk_family(gs) == family && - gs->gro_hint == gro_hint) { - return gs; - } + if (inet_sk(gs->sk)->inet_sport != dst_port) + continue; + + if (geneve_get_sk_family(gs) != family) + continue; + + if (gs->gro_hint != gro_hint) + continue; + + return gs; } + return NULL; } static int geneve_sock_add(struct geneve_dev *geneve, bool ipv6) { struct net *net = geneve->net; - struct geneve_net *gn = net_generic(net, geneve_net_id); - bool gro_hint = geneve->cfg.gro_hint; struct geneve_dev_node *node; struct geneve_sock *gs; __u8 vni[3]; __u32 hash; - gs = geneve_find_sock(gn, ipv6 ? AF_INET6 : AF_INET, - geneve->cfg.info.key.tp_dst, gro_hint); + gs = geneve_find_sock(net, geneve, ipv6); if (gs) { gs->refcnt++; goto out; @@ -1080,7 +1086,7 @@ static int geneve_sock_add(struct geneve_dev *geneve, bool ipv6) out: gs->collect_md = geneve->cfg.collect_md; - gs->gro_hint = gro_hint; + gs->gro_hint = geneve->cfg.gro_hint; #if IS_ENABLED(CONFIG_IPV6) if (ipv6) { rcu_assign_pointer(geneve->sock6, gs); -- 2.54.0.1013.g208068f2d8-goog