Received: by 2002:a05:6358:a55:b0:ec:fcf4:3ecf with SMTP id 21csp4633145rwb; Tue, 17 Jan 2023 03:33:51 -0800 (PST) X-Google-Smtp-Source: AMrXdXs8GnGIim7m9zW6c2/WJ4cGiF+9D/tpA6JsfQh8FpA0sbaVMNrmI/JXW++UszQI159/7JSf X-Received: by 2002:a17:906:3610:b0:7c1:8ba7:3182 with SMTP id q16-20020a170906361000b007c18ba73182mr2491849ejb.69.1673955231342; Tue, 17 Jan 2023 03:33:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673955231; cv=none; d=google.com; s=arc-20160816; b=XA0AZRkFQGCqbZxF6Fi7PuLbbWGr6QNAhM6nRbleO9Qzp0yUdrgS1CMmd6V1jr9Pqz 7O97VLD3FrkxrkoSKuvQ+qlIpWrIu5gPbIeMmHgJLu16CtlzGStISFv89xOcMk3yLXSy rBbLkHJ5JkB9fBQnNxGxexR0ROI5mUc5SxtTWdjaUhMCVEj5/4ch4++EFbuiZH3vgzEx 9KWlH12wVA+DeGbVzTcQEoaKChWWQgjnB2KoxC2/GRsaJ0/Lhvqk6m0A5uRjo1Ex1zg/ aZqtTDE1hQXJ/nKiFTjQslrUEXmtZ6gzyhuqFIc3mVExe0aQy7B9u0L8e91Icajb/oMZ 66yQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=gd57rGEcdWWuRwQ3UNFckqiK6zpPBQSmZrDNmjzfeP0=; b=JRK2pWY2R7lo49wqgnIyi4tW+4Iqvhuioce+19onRq0ZZ2LYoYcS5QksCW941IywXg CJ3Ynn5fUfN2MZlBGL4uMDFEbRZOpS+YrfekaS6YUpPUBaHYfWuuL4jjw+jRrBpjfU9l KCawwY9jDLumfgEPUKgX96tT9BDaeX+NHQs0sNy6d8ZkQRlHvvMgyPWb0YZd0Q5Ftlsc Lf2CD1ljzsD77crGwd+7yf+v4qnV2Amy66PdS+HI+qCkQ44mta3wez4hmpdLvembP0t3 rFzPY1vuwZjR59RB9NeRC04NLASRc558u8E3C+Kx4Jzfj98M9juLlJSH3fczoUcU1F+L AzbQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=E9CH+PaX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bb7-20020a1709070a0700b0084d4a07de68si26824335ejc.477.2023.01.17.03.33.39; Tue, 17 Jan 2023 03:33:51 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=E9CH+PaX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236712AbjAQK1n (ORCPT + 49 others); Tue, 17 Jan 2023 05:27:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35946 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236622AbjAQK1c (ORCPT ); Tue, 17 Jan 2023 05:27:32 -0500 Received: from mail-yb1-xb2f.google.com (mail-yb1-xb2f.google.com [IPv6:2607:f8b0:4864:20::b2f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EFA22279A7 for ; Tue, 17 Jan 2023 02:27:30 -0800 (PST) Received: by mail-yb1-xb2f.google.com with SMTP id o75so33438479yba.2 for ; Tue, 17 Jan 2023 02:27:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=gd57rGEcdWWuRwQ3UNFckqiK6zpPBQSmZrDNmjzfeP0=; b=E9CH+PaXQAWy1e2XEFmqO4KgSBiAufMVvqRHual7m82yHlgT0ThZ4ZCwrXOE4X9PG5 Arx9a8j4E8YsWGWspx7PEIc2fOA97IbXW1DXkm6sWqdjVPD7DLc1RXhQklFz1TaKHXL8 2/gR1xMb9yN3kYg8S6mPxvHkgpoEUrgfufNAN7s+OGPCs4Ef4Bk+WWORj5tHoAuPKaqG UCZ9/UFFHkG90j3YPFUhZD4ovZLvxL5nwIw7Q3fCPjUO4OmyOtfg7VUtrFNhDZHYDqRq UH9IQryl2vXqEd+mCuN4GzCIuLxebmh7eni0srrkRy2YgEmZx+m+lV6+S5imDVLbcEyB g/MA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=gd57rGEcdWWuRwQ3UNFckqiK6zpPBQSmZrDNmjzfeP0=; b=2MCU4RYYcEGwvdo0FxqRyjfxDEkPVXQsUaNynu1qs6aTxLxD8Cht8bTwSQPM1EFQOw PCRdSmxlUNGZNSUlj49umg2s761x91fh8l6Tl/7NrBXdLeK8dASXrELtwwm9tIr9PzXi 15VdRQUIy1sggVV8GIs9WYR7RStR76GZuH710LphMcunS3hiDl6zsVl9PT25yNc74eiG QySjPIRyD5ilYEiEksZeiPqZ0f5+fhf/9gqOKRmNQkmX7CVl7saQ2R4iNlT4vQCoYehR 0J1o+qaG8yAWmUsfut38A1LtvwJpB+ArpHvt8NO2pkkjWuGTkH0UIop4rdMxB+mL5ogB jSAw== X-Gm-Message-State: AFqh2kqRhfamWrOuIhugvHNsXEXHzQvLyR7w7CyX1ysppc8G9pkMs2xh iRI0exzs7yZRFYX6Ve8GClQZabalY5yPM5CBNscMLQ== X-Received: by 2002:a25:c543:0:b0:7d5:dc31:81ed with SMTP id v64-20020a25c543000000b007d5dc3181edmr401047ybe.407.1673951249934; Tue, 17 Jan 2023 02:27:29 -0800 (PST) MIME-Version: 1.0 References: <20230112-inet_hash_connect_bind_head-v3-1-b591fd212b93@diag.uniroma1.it> In-Reply-To: From: Eric Dumazet Date: Tue, 17 Jan 2023 11:27:18 +0100 Message-ID: Subject: Re: [PATCH net-next v3] inet: fix fast path in __inet_hash_connect() To: Paolo Abeni Cc: Pietro Borrello , "David S. Miller" , Jakub Kicinski , Hideaki YOSHIFUJI , David Ahern , Cristiano Giuffrida , "Bos, H.J." , Jakob Koschel , Kuniyuki Iwashima , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-17.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jan 17, 2023 at 11:21 AM Paolo Abeni wrote: > > On Sat, 2023-01-14 at 13:11 +0000, Pietro Borrello wrote: > > __inet_hash_connect() has a fast path taken if sk_head(&tb->owners) is > > equal to the sk parameter. > > sk_head() returns the hlist_entry() with respect to the sk_node field. > > However entries in the tb->owners list are inserted with respect to the > > sk_bind_node field with sk_add_bind_node(). > > Thus the check would never pass and the fast path never execute. > > > > This fast path has never been executed or tested as this bug seems > > to be present since commit 1da177e4c3f4 ("Linux-2.6.12-rc2"), thus > > remove it to reduce code complexity. > > > > Signed-off-by: Pietro Borrello > > --- > > Changes in v3: > > - remove the fast path to reduce code complexity > > - Link to v2: https://lore.kernel.org/r/20230112-inet_hash_connect_bind_head-v2-1-5ec926ddd985@diag.uniroma1.it > > > > Changes in v2: > > - nit: s/list_entry/hlist_entry/ > > - Link to v1: https://lore.kernel.org/r/20230112-inet_hash_connect_bind_head-v1-1-7e3c770157c8@diag.uniroma1.it > > --- > > net/ipv4/inet_hashtables.c | 12 +----------- > > 1 file changed, 1 insertion(+), 11 deletions(-) > > > > diff --git a/net/ipv4/inet_hashtables.c b/net/ipv4/inet_hashtables.c > > index d039b4e732a3..b832e7a545d4 100644 > > --- a/net/ipv4/inet_hashtables.c > > +++ b/net/ipv4/inet_hashtables.c > > @@ -994,17 +994,7 @@ int __inet_hash_connect(struct inet_timewait_death_row *death_row, > > u32 index; > > > > if (port) { > > - head = &hinfo->bhash[inet_bhashfn(net, port, > > - hinfo->bhash_size)]; > > - tb = inet_csk(sk)->icsk_bind_hash; > > - spin_lock_bh(&head->lock); > > - if (sk_head(&tb->owners) == sk && !sk->sk_bind_node.next) { > > - inet_ehash_nolisten(sk, NULL, NULL); > > - spin_unlock_bh(&head->lock); > > - return 0; > > - } > > - spin_unlock(&head->lock); > > - /* No definite answer... Walk to established hash table */ > > + local_bh_disable(); > > ret = check_established(death_row, sk, port, NULL); > > local_bh_enable(); > > return ret; > > LGTM, thanks! > > Eric, do you have any additional comment? Oh right, I have missed this version. Reviewed-by: Eric Dumazet Thanks !