Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp2698667rwd; Fri, 26 May 2023 09:55:40 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7DAir2tVvnpY5rLrBljyOxhmEUG/jjlQpcz8C1XK6X8sSpVQlxOxSTTJ1fIsMOZkj0Eqhc X-Received: by 2002:a05:6a00:ccd:b0:63d:260d:f9dd with SMTP id b13-20020a056a000ccd00b0063d260df9ddmr4587719pfv.33.1685120139883; Fri, 26 May 2023 09:55:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685120139; cv=none; d=google.com; s=arc-20160816; b=gEdVh1shjuvFDglpHrZCJI9yr1fCo7h5RZaWR2vSkXDrEpHx4DaWhEo0E3sMxd3khE OzdHqFQ3BclgPXMdzONGd4Ek5K4phLVrqIn8uBjUX2+lEMj6HfWS2xaR/vdZj0lXVDFt Flm4Elmr7qAc5qoDtNwwhoJ8aiLElnpg/ozjixUX9lQbD8fLgJPcChgcxyfRKzJOx4EM GeK6MMU8bKPr7HDqJCeegTN4fNz9X+V3X9e34pbVu0boBAy+C9YRfEKAfIKivnM0m+vS cGB0KoNDQ8+hBKctaM+Hua/7n8mUdgp4BescHpfGpxHNbiKS7nAfRjkerma38cCK+MLD ddzA== 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=RAtqNYbh7M5s0Zh77kXZkFyvhVnNh8Ig8hf9ng8Oukk=; b=ckc+TuzOezJ8yQZ4WWDhM51MjLWWUyJh3NTEHHosjk4Uh8368uXTEaWx/e6bHbNEFy DeM6huuzZh+Bz36UqzXpZtZ6cEEYmFtwuqoSpxBlNou1F5BaaYO1hAo+1f7vgPEKaH4v T6j/EkH1t1+sZ5R5yVm7QP8aGzyB3Kk8UHZGirPi7KyRPdjnT6MxfppDstjJNhMCkeqX D3k+nQO8EtxDTt9utlblNkA66BPpdzNVod8GtsfreLMdiuz5Rec8aaOgQM2eO888Q10l KU/Dy18Z4/ZJ1Tf4+onB6Sa5sKy3Loo4y0yPxkQWLXnEvPheYidKu1umoeRHPQDBn8i6 u7fg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ispras.ru header.s=default header.b=G6VyIKAu; 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 v3-20020a655c43000000b0051b9a71329fsi3861749pgr.360.2023.05.26.09.55.27; Fri, 26 May 2023 09:55:39 -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=G6VyIKAu; 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 S236768AbjEZQlN (ORCPT + 99 others); Fri, 26 May 2023 12:41:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43252 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229977AbjEZQlL (ORCPT ); Fri, 26 May 2023 12:41:11 -0400 Received: from mail.ispras.ru (mail.ispras.ru [83.149.199.84]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7CCF3194; Fri, 26 May 2023 09:41:09 -0700 (PDT) Received: from [10.10.2.69] (unknown [10.10.2.69]) by mail.ispras.ru (Postfix) with ESMTPSA id C65D844C1026; Fri, 26 May 2023 16:41:07 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 mail.ispras.ru C65D844C1026 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ispras.ru; s=default; t=1685119267; bh=RAtqNYbh7M5s0Zh77kXZkFyvhVnNh8Ig8hf9ng8Oukk=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=G6VyIKAu6nhnyF2F96l1FQtH5ux+1Km4ytWdzol4QcM8Y5R9yqHb7EO02P1vRMi1X 8+JVda2cJtSw7Qxw946OzJ+T4bvyKVqvlHSLgPxLQGa+Nn40li3+ptBXQNwnwnbazY BGCoQr/Sk2khjpQcwnUG3G75te8L0h8HQ5j3AXaA= Message-ID: Date: Fri, 26 May 2023 19:41:07 +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 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); } Best regards. Vlad. On 26.05.2023 19:00, Eric Dumazet wrote: > On Fri, May 26, 2023 at 5:58 PM Ефанов Владислав Александрович > wrote: >> Paolo, >> >> >> I don't think that we can just move sk_dst_set() call. >> >> I think we can destroy dst of sendmsg task in this case. >> > dst are RCU protected, it should be easy to make sure we respect all the rules.