Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp2720729rwd; Fri, 26 May 2023 10:11:33 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7TXp/mFIq+Q3DqXtayIln/J3+4xd0nXCPJbuJFxWnvUkRxqXEotNFYpf3PpjqIDc3L4625 X-Received: by 2002:a05:6a00:845:b0:63b:5c82:e209 with SMTP id q5-20020a056a00084500b0063b5c82e209mr4524215pfk.10.1685121093574; Fri, 26 May 2023 10:11:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685121093; cv=none; d=google.com; s=arc-20160816; b=uZWxG7iQynTRfHUgLXJur0IHzPONDz31H2hx/nEEsnH54uYCy90bTYY67ZOcgQzOkQ kul51ZNmCon1H7YLOLwxJ5YDxyBz0Z2FlgLKyp8BxecMTs6Tq8lSqYrVt67KD42H+QjR uIEpW37rl2+CImdn6TGZkpGby4A5V7NoUiIDvUNPf7spGm6oyaFtBiVjhvk2fTzspZfT DPTKstqCyVMsxTuhuSBviN4nnNsH38RVRJyCYRTuKJFOdKB4LA7/bx+GOQN5kLJprCLG +dr3w+f6ETUmAw+CAFe3OZCA34dTUHHy5DD/gjpHkdk6w7QxT/S2s49ebxXAXTvfCW4B 54JQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature:dkim-filter; bh=K6mspQaxjuMVv9+CF48XVDc5ehAnfgeTpsYDWKVwgzg=; b=L/xvcOPZohmr6vabXqv2spibeTevetLuZRAjU/jtSFpl6iT7/+yQVz/tihd/pizXP9 ZE0xBKuyguCNLLRumxe6wGfvLslOZFnIxRuFpazgEzHEBnEnrXmm7cUGjqkLeHf2gIc3 AxSycP0MbTqx0HanA+c+3IqT5A6TMcuoe5RrVdIutdAOQoB6J2VJN5MJfod1bseCSEbH 4yYdL0h0vnXZEmI4Du0AsM5inBdOEjK3o/9RzwNIajKv6s/LKg4JcAbV+xT0VYuuyk3y lW7PZu8wkVoWBkUU1YFtN7G0t3v/5886wcKb5vXSbJZPIorIS+vhQKpZcDzsr/4fMSgz t1gA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ispras.ru header.s=default header.b=kmqIq9Bk; 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=ispras.ru Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w123-20020a627b81000000b0063b77e2123csi544171pfc.26.2023.05.26.10.11.20; Fri, 26 May 2023 10:11:33 -0700 (PDT) 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=@ispras.ru header.s=default header.b=kmqIq9Bk; 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=ispras.ru Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230369AbjEZRAQ (ORCPT + 99 others); Fri, 26 May 2023 13:00:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54798 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229704AbjEZRAN (ORCPT ); Fri, 26 May 2023 13:00:13 -0400 Received: from mail.ispras.ru (mail.ispras.ru [83.149.199.84]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5E255125; Fri, 26 May 2023 10:00:10 -0700 (PDT) Received: from [10.10.2.69] (unknown [10.10.2.69]) by mail.ispras.ru (Postfix) with ESMTPSA id AEF2344C100F; Fri, 26 May 2023 17:00:08 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 mail.ispras.ru AEF2344C100F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ispras.ru; s=default; t=1685120408; bh=K6mspQaxjuMVv9+CF48XVDc5ehAnfgeTpsYDWKVwgzg=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=kmqIq9Bkpq4xhXGEF6Ci7/dJXUYCiwy9CmVggLFqEk3Ebkt8lZLKdv0RGtC35J2Mq fqSroNe5jEXynE0U/HJSTIQhu3VxWF0mjCgGiCu3WhPliktUI5Bik6svHXRlI+VI5W EhObld1L/vPEp+dXgw47N2de1PJkZIOy0ll/vhLw= Message-ID: <7a8b806f-14f5-5965-8915-0cd0b2473338@ispras.ru> Date: Fri, 26 May 2023 20:00:08 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: [PATCH] udp6: Fix race condition in udp6_sendmsg & connect Content-Language: ru To: Eric Dumazet Cc: Paolo Abeni , Willem de Bruijn , "David S. Miller" , David Ahern , Jakub Kicinski , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, lvc-project@linuxtesting.org References: <20230526150806.1457828-1-VEfanov@ispras.ru> <27614af23cd7ae4433b909194062c553a6ae16ac.camel@redhat.com> <027d28a0-b31b-ab42-9eb6-2826c04c9364@ispras.ru> From: Vlad Efanov In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.2 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham 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 I will rework the patch. Best regards, Vlad. On 26.05.2023 19:47, Eric Dumazet wrote: > On Fri, May 26, 2023 at 6:41 PM Vlad Efanov wrote: >> sk_dst_set() is called by sk_setup_caps(). >> >> sk_dst_set() replaces dst in socket using xchg() call and we still have >> two tasks use one socket but expect different dst in sk_dst_cache. >> >> >> __sk_dst_set() is rcu protected, but it checks for socket lock. >> >> >> static inline void >> __sk_dst_set(struct sock *sk, struct dst_entry *dst) >> { >> struct dst_entry *old_dst; >> >> sk_tx_queue_clear(sk); >> sk->sk_dst_pending_confirm = 0; >> old_dst = rcu_dereference_protected(sk->sk_dst_cache, >> lockdep_sock_is_held(sk)); >> rcu_assign_pointer(sk->sk_dst_cache, dst); >> dst_release(old_dst); >> } > I am quite familiar with this code. > > What are you trying to say exactly ? > > Please come with a V2 without grabbing the socket lock.