Received: by 2002:a05:6358:a55:b0:ec:fcf4:3ecf with SMTP id 21csp610632rwb; Sat, 14 Jan 2023 05:44:10 -0800 (PST) X-Google-Smtp-Source: AMrXdXs/Wp5ymFX8fKHIy7NGTe2r2xoEy5mU3g3Cg8n8erV5ah1WbVF6JyuU9pNZopgPItHdAtpj X-Received: by 2002:a17:902:d647:b0:191:13f2:173a with SMTP id y7-20020a170902d64700b0019113f2173amr77895833plh.36.1673703850549; Sat, 14 Jan 2023 05:44:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673703850; cv=none; d=google.com; s=arc-20160816; b=b3QLoqV/XIjjrJ5OICmK/aAvqjc+kbIHliP914pKxsdRhEuhY+utkN7a98waICknSn qU/QcDc/tKy9+HsfM3HTt6H/Wzmc/YJ2G++b5PrCSG0C1BRb0bjnePRTFoxx8JrbX8xz eWjZoZsqEc2xrkAwhkA3YkaUL6098E85QE0TwxAgSYXBfrDxBh3LSmv2Uefi4nhxdEld 82gyzhdfT5vilS67d05GeXsXp12yLUkwIUlWL9tx9oZIt/qP7rpdI3uzdlyYW1WsOF17 SLUfsFrM9KU1AFZ862ee3QvovdX6ttTwThpzw4Pwd00neuCBORUbye391VZv8p3W/mbj k70g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:message-id:content-transfer-encoding :mime-version:subject:date:from:dkim-signature; bh=TA5irrJ97Zm1pKOtsaRcVAWqWkukQuvBG068G/jV9M0=; b=B0RG0MD43MInGiXc/azOxkgxHhJGdctU33BgboS67V1/ruazwRvIZP4mJhiPdJlldB oIAidsN4Q8YerTSjj7WHmA3FlyHSDIGcKxWrxLFvUd1zFPFtYEDNIgp4lxNH2S2ztaqh d3zKy7ilZzlJw2eErqyJH3L5RuYtjWAlkj1BTIZ7THPSP2pdwK734ppRbdLdQ4GSQxwk MLtpiUXwXCwdnBk2s7nUrn35shRmJD1lqNYDH/pO6IIDGqZIiH+B8X5WtZB2G0r6p58a AM5YNykjpimlCoVkHgtaAOGOEZrHUUb4N4Crayy8QZEN3TRQO85Jw7HTn2d6DU18OKv1 WnMA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@diag.uniroma1.it header.s=google header.b=LpVRFjJj; 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=NONE sp=NONE dis=NONE) header.from=diag.uniroma1.it Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h14-20020a170902f70e00b00192a2db815dsi23850482plo.375.2023.01.14.05.44.04; Sat, 14 Jan 2023 05:44:10 -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=@diag.uniroma1.it header.s=google header.b=LpVRFjJj; 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=NONE sp=NONE dis=NONE) header.from=diag.uniroma1.it Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229781AbjANNMR (ORCPT + 51 others); Sat, 14 Jan 2023 08:12:17 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41788 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229609AbjANNMN (ORCPT ); Sat, 14 Jan 2023 08:12:13 -0500 Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com [IPv6:2a00:1450:4864:20::636]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7A6A46E85 for ; Sat, 14 Jan 2023 05:12:09 -0800 (PST) Received: by mail-ej1-x636.google.com with SMTP id cf18so51817445ejb.5 for ; Sat, 14 Jan 2023 05:12:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=diag.uniroma1.it; s=google; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:from:to:cc:subject:date:message-id:reply-to; bh=TA5irrJ97Zm1pKOtsaRcVAWqWkukQuvBG068G/jV9M0=; b=LpVRFjJjAm0OwujEHeVao7WLsD0eVoWBg0v6mpYCslEPyfsIIzLBGaLlt+xj6Lbsgn 1yZvHYbZEG7rs8TFeR066CITO5q22INXtET1BZ0B0eAg728q3Z9IkdRQnzGh/9zQBgns 5iXhHDd8Px3f80eu6Na/FKeu5Xl8OeOinj9F0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=TA5irrJ97Zm1pKOtsaRcVAWqWkukQuvBG068G/jV9M0=; b=Z2D226MDdFyjY7k1K12AIGOViDOESRoYHCiv26V2u3MaNmQ5YzVWYeeRHOZYXeTAxu ++IeeJbTiva9FbXrXAiU1PBRHkGQgr7c8aKLWBWwtIqPVJzX15OlNWkyckYN0+ECEpjP TWx3Y6aunxKtVBtwmNxhR0Jdbk9XUuPMMnG2I9mfBoioAbeaYR8RCVGfoH6MwnZWkHpk hU83xPgh8UHD8bjzC1ur4TWt2VLFitWeaMw6dnySYTc1AGDe7PBqf8aevU6+ObxLPlRr z6ZGuRvR5Sm5OfkLXYrl4tyT0IbjkY5J2+BlcAY/bOtRCGCOURt9a9lFPON8V5y/avGM 0rMg== X-Gm-Message-State: AFqh2kpgzRBVFi42rzFItFA/mXdFPCs//fjVcNTjOIMTcmg3+KarwTjf WDHFJcmhK9ckpGo3dFA2SOfaBw== X-Received: by 2002:a17:906:da09:b0:7c0:e5c6:2a6d with SMTP id fi9-20020a170906da0900b007c0e5c62a6dmr6425666ejb.39.1673701927984; Sat, 14 Jan 2023 05:12:07 -0800 (PST) Received: from [192.168.17.2] (wolkje-127.labs.vu.nl. [130.37.198.127]) by smtp.gmail.com with ESMTPSA id p4-20020a17090653c400b0084ca4bd745esm9658956ejo.35.2023.01.14.05.12.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 14 Jan 2023 05:12:07 -0800 (PST) From: Pietro Borrello Date: Sat, 14 Jan 2023 13:11:41 +0000 Subject: [PATCH net-next v3] inet: fix fast path in __inet_hash_connect() MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20230112-inet_hash_connect_bind_head-v3-1-b591fd212b93@diag.uniroma1.it> X-B4-Tracking: v=1; b=H4sIAA2qwmMC/5XOQQ6CMBQE0KuQri2hJUhx5T2MIaX90L/gY9pKM IS7W3DrQpeTSd7MygJ4hMAu2co8zBhwohTKU8aM0zQAR5syk4UsCyEkR4LYOh1cayYiMLHtkGzr QFuuemlNo/pCdYIlodMBeOc1Gbcbow4R/F48PPS4HLM3lkBOsER2T43DECf/Ov7M4uh/mp4FF7y G0tR1IaraqKtFPeRPQj+NWuT44Wf5BykTWYFp5Nla26jqC7lt2xsxIc0pQwEAAA== To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Hideaki YOSHIFUJI , David Ahern Cc: Cristiano Giuffrida , "Bos, H.J." , Jakob Koschel , Kuniyuki Iwashima , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Pietro Borrello X-Mailer: b4 0.11.1 X-Developer-Signature: v=1; a=ed25519-sha256; t=1673701927; l=2061; i=borrello@diag.uniroma1.it; s=20221223; h=from:subject:message-id; bh=8v/y9dezeD4bGg+sLXesbdVfw+jitR6F8rl/F0ZYHVI=; b=ckGjINy49k27kdG5mt+R5zuKdRjUsFOmYQWCPHQpwRNFW4KGOGVWC/7F3XrPfXsc4pp7b5kTiQxT q+FrBtUcCperCfbiGJ2MiJTDNIZ1WjwFYLRhA4LZshdS1Qa7QUVW X-Developer-Key: i=borrello@diag.uniroma1.it; a=ed25519; pk=4xRQbiJKehl7dFvrG33o2HpveMrwQiUPKtIlObzKmdY= X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS 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 __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; --- base-commit: 1b929c02afd37871d5afb9d498426f83432e71c2 change-id: 20230112-inet_hash_connect_bind_head-8f2dc98f08b1 Best regards, -- Pietro Borrello