From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (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 33DF435F8A2 for ; Thu, 5 Feb 2026 07:58:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770278335; cv=none; b=EudsUiBUnMvUBCJQbERzKlRBGe/qOsU1M5k2c4qud77fPrHshf3f/wcZ0L8mVYs5535fbt0+6k6tHfVrQTQnQb2n920VHj0g+s283yvUsBjRH2imrW5UkIo7RMs7/04W3j/EUcw2rZCzwDqOYCjfIbEYwjDL+uRvWeI9rxyTjrw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770278335; c=relaxed/simple; bh=sZQ3YwewM9Ai+7WG00Ix8G/HdOMYfSXLaxEv1z7nGr4=; h=Message-ID:Date:MIME-Version:Subject:From:To:Cc:References: In-Reply-To:Content-Type; b=qYjyJY9lC/Zkq4GCiESedlPERSHUYcelquJJdwrjDyBSMNSpR1yWd5ajz0MR4N9qtvL6uzb1HLymZKqjUTsbE7LHSkLELyNW+zYBwYrmIAtJPJKCteJFL0q2tDOPwNVNXwiM9uaS8Z+pMvXeHemZaUPJcWZwhVMlkn0vlx5xmAc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=cogentembedded.com; spf=pass smtp.mailfrom=cogentembedded.com; dkim=pass (2048-bit key) header.d=cogentembedded-com.20230601.gappssmtp.com header.i=@cogentembedded-com.20230601.gappssmtp.com header.b=OTLFZ8JU; arc=none smtp.client-ip=209.85.128.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=cogentembedded.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=cogentembedded.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=cogentembedded-com.20230601.gappssmtp.com header.i=@cogentembedded-com.20230601.gappssmtp.com header.b="OTLFZ8JU" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-4806f9e61f9so3703525e9.1 for ; Wed, 04 Feb 2026 23:58:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cogentembedded-com.20230601.gappssmtp.com; s=20230601; t=1770278334; x=1770883134; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:from:subject:user-agent:mime-version:date:message-id:from:to :cc:subject:date:message-id:reply-to; bh=kv4UVvtp9oTgfg4NwZs5j17xsQoACWxzr3TeGIM+1uc=; b=OTLFZ8JUwzyHB61KICJ/1PQ18g5HGVT7ZgNC/swVn9PjHsytoKdwI8g96lVNb5wEpY Rh/ReKrNM+AdxTCtbpBooPNiVMo9O9GvfkXGDySmI3ibQBvq0hnKrjs+KgTDfCFwtGAD XebrjxO6fDNe0SZoHk4gqbRbzIB8w0B9j0Kncsmj7v5wmNpEuqZjS/h8yq2XyxUwvPaI 4NpGrJ0NgOK/rGUS2WdSdYZdabvkMuLHzHqPEnweLu35CUf9KhEGieoRDalJqSjHC0ps /6xXDmeGOv8ym7AjtApliErqaZM+qhS6lUErnPC7cbLSf5nmvxuv3fmZF9PS0WBP9+s6 2/fQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770278334; x=1770883134; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:from:subject:user-agent:mime-version:date:message-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=kv4UVvtp9oTgfg4NwZs5j17xsQoACWxzr3TeGIM+1uc=; b=WaY4qGZ5l2z/ZWaVayQyYtoKGRkhSEM+pn10aOztoB7boJsMSxc2tf0NsngZmeRd0U FWZ+tTX+gKo1t5Udn+qw/9BvQZaRS0Ss58UgWpEaywmCa7hc4oicvH95ecWcOVyFIaNv +isLc815mL3WSyc2KOhf+ZZ3ZLZ9c0j4Qy0xcOHBXjAaKQVTEiQAPFsT6BGz1OekPWbL DGmWLvkZl1BX9WqjKHNH76KXD1dI3tlHQ/8I6PN8L1h0M+DVEt3nWviw3un9xK4OECXc cVrEVyGbAEK6YHdcYW6Ujqe81Ea45lB1TGsBfm4tj/DIDuw9D2rI0TJdutdlyE24jzEl Nxfw== X-Forwarded-Encrypted: i=1; AJvYcCUNKK/W243oeNKuKWeqA+wZb4ju3PBlvl+LqgeUUoDuIZN2AP50kZSGkChK6zH4gAafpgRYDr6Pz476/b0=@vger.kernel.org X-Gm-Message-State: AOJu0YwDixk0kdeCemNA9AkZA3qfwiBRWoNNKxLQQ/A6e5FZHyIycjvq PBhh/d99SEVTPLHr0F56LT94I1jccWSsqxAif6YRVO9GR5RLBfTldj0Ni5fQaCPLnJg= X-Gm-Gg: AZuq6aLKkVNgjlEAKqynDiLuOCq3PCuZWjcOjXwcrrNXhegeNofZbQ+BB0SocQQ443R e6ejrS2n7D2oY+vNp5FDt/9iAPAu8Yua/PYRjmCkIIzz50VUjAC17gpc5a6uLFmRC7wJM6ln07v Y6tIgqwev5hsLUWWtJmAUL3+RioLxS9RaQOzPf7C0Ke3Bv5vu8HSwHB/QjnVL/jOwwE+Cm5lPDJ 3LZ/HuY7qf2bM0njk4DCDSecpFRPg6SN80RGNvvBl+lUfbz/qLWANBweVsXmHFBZlEZIvMxjGFP BR2XS2MI/914ErLON+qchKUOdOb+8UY/EG/IqbbczDB3ZdxJ+fD9zVRZlwFdgQ2fAlizGXQPSxQ HLAXwUQfyzzU2l6kLInkm6Fd4vEgaqyKTVSNMuyKNqAphqyhAN2dr9HGTB2Zf8VVvRLhmXbgMGL YS86K0zVbZ3LPzB1VYCby3siaNDeMGviiiwEugzYWaRAKF6mo= X-Received: by 2002:a05:600c:154c:b0:477:abea:9028 with SMTP id 5b1f17b1804b1-4830e92a7c4mr78949725e9.6.1770278333677; Wed, 04 Feb 2026 23:58:53 -0800 (PST) Received: from ?IPV6:2a02:810a:b98:a000::b3d5? ([2a02:810a:b98:a000::b3d5]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4830fe69e9fsm51569315e9.6.2026.02.04.23.58.52 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 04 Feb 2026 23:58:53 -0800 (PST) Message-ID: Date: Thu, 5 Feb 2026 08:58:52 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH net] net: renesas: rswitch: fix forwarding offload statemachine From: Nikita Yushchenko To: Michael Dege , Yoshihiro Shimoda , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: netdev@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-kernel@vger.kernel.org References: <20260205-fix-offloading-statemachine-v1-1-640224a531d0@renesas.com> <3b1405cd-6c7f-4883-95fb-151cab223a68@cogentembedded.com> Content-Language: en-US, ru-RU In-Reply-To: <3b1405cd-6c7f-4883-95fb-151cab223a68@cogentembedded.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit WBR, Nikita Yushchenko, System Software Engineer @ Cogent Embedded 05.02.2026 08:47, Nikita Yushchenko wrote: > Hello Michael > >> -        } else if (rdev->forwarding_offloaded) { >> +        } else if (rdev->forwarding_offloaded && >> +               !rdev->forwarding_requested) { >>               rswitch_change_l2_hw_offloading(rdev, false, false); >>           } > > Although indeed the condition in the current code is not correct, I'm not sure comfortable with this fix. > > Full condition for a port to be a valid candidate for hardware forwarding is > >   rdev_for_l2_offload() && rdev->forwarding_requested > > It is not obvious if at this point rdev_for_l2_offload() could get changed from the last call to > rswitch_change_l2_hw_offloading(), so using only the partial condition at this point does not look good > for me. > > I'd suggest to either change to something like > > if (rdev_for_l2_offload() && rdev->forwarding_requested && !rdev->forwarding_offloaded) >     rswitch_change_l2_hw_offloading(rdev, true, false); > if (!(rdev_for_l2_offload() && rdev->forwarding_requested) && rdev->forwarding_offloaded) >     rswitch_change_l2_hw_offloading(rdev, false, false); > > Or maybe just > > if (rdev_for_l2_offload() && rdev->forwarding_requested) >     rswitch_change_l2_hw_offloading(rdev, true, false); > else >     rswitch_change_l2_hw_offloading(rdev, false, false); > > since rswitch_change_l2_hw_offloading() has internal check for the current state and returns early if > the requested change is already applied. May be even better to add bool new_forwarding_offloaded = rdev_for_l2_offload(rdev) && rdev->forwarding_requested; at the beginning of the loop body, and use this flag over the loop - it will make the code shorter and cleaner.