From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (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 2EDCA4028C3 for ; Wed, 3 Jun 2026 07:55:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780473304; cv=none; b=KYmqzSH8B3r/cti26Fd9g4Nz6sy65/zR8paL42tKZuF/nP6hLBqaY7BbLOk8rf3HPWQIgakiThLHqnD5cP1fTnuiGsnW2fqdANLl0SzymjHIJ3I2o9g0nvcbpbM+ZCVAwjP2RacxFmqerwQmYO7yeNuWYjWl/l4U46/LrCQkKng= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780473304; c=relaxed/simple; bh=bf2/JwpQWD28xonEaanPrW5K427APXwU9FOB9VhG6XU=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=jgWRQb7rAJcFuq1QZqqK9DIpUWzpUtrwNTLVL3YDZ0O6OYhl2MqXrJmqZtyIQpbOyGwxBw4W9XTIvmVqGd5PkphaAy/Z7MVmCCkSWLL5MZaZncXsyGdSWdShUa9jLivw0DX104k23u7OXLFTfXtK/xQLQMEki/FrgoWkAavLpkE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=blackwall.org; spf=none smtp.mailfrom=blackwall.org; dkim=pass (2048-bit key) header.d=blackwall.org header.i=@blackwall.org header.b=DbqgEAUJ; arc=none smtp.client-ip=209.85.128.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=blackwall.org Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=blackwall.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=blackwall.org header.i=@blackwall.org header.b="DbqgEAUJ" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-490b8ac62baso2080295e9.0 for ; Wed, 03 Jun 2026 00:55:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=blackwall.org; s=google; t=1780473299; x=1781078099; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=wT5gJlr8gJU4Zg/k/veBZUjxGWuT2RFVJgAw37fV/Es=; b=DbqgEAUJOPWkmk2ACD4xC8i/MTc3gRHHC3exd3KuGJQqFVXtesk71sOzlGFAmeHC1G IXrLGIwM+ZG69rVZh94hUMh1h2Oc1m1NfHWKXHiKZCSA4rGRGEo1+UFAT2lt47+2gcel Y20advU9dV+kDdWSlRdvIGXSdsmqJqpA19GJtyuDl43pIe2JVZqzAzQxMbpsv5OTxJ6V tdsmNhmg7RncL0GsDufTWk+W2CCmRSVbYWjF/ho9Hh8yhMv+EfNqjuKeCJEQ2LEOfOrn F3HI+yr34cIvwHU7gCJuEKvXPcv0djsNCqj7zEQA2tyUtU85Sb6IMcOQdUjCkXXsqj0V Zbzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780473299; x=1781078099; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language: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=wT5gJlr8gJU4Zg/k/veBZUjxGWuT2RFVJgAw37fV/Es=; b=qYg/3CNj6NSASiiQij9F6KK6APdgeq1/qGoE/uNTWOd+OjeLaNQlcEESYNWH+D0Buu fLBarC+jSx0svx8TusqRbIPcEkYEMnW78t6bjKx0iMr3FlfR1wUGo4yBNqzadac4InbN 7CKlR9q+KarEt9A26ydqOhumcvvbWcUHqI+G844cLkIO7ltECzL0NAatwwqnwcCgtFwK idYRNklhGgdojhKuiQ9whgmJetsMnG04sSDSmC0p7zB8EWA03HFjDDy0x6vfM/GeYDrl x8+iRxorN/SkarprUwkRxZxQ1Q3HZGwEwIOSVF+ht7GtBBYM8o6RzYXhJOSspakCA5rx s1Qg== X-Gm-Message-State: AOJu0YyZOIKqgAsfbqpqDfeXyOS6xLUNi/tODEfFfKeETnuoHO7NuiLx AaeQizYmyvmlsCzNExuvp2XCsV0XGuTzI3j3wj/gfsVFjMZV8hnuUBUPHZ89wVhxLTw= X-Gm-Gg: Acq92OENfxiAo11lbKapnaCXBi5awIe4OLEInMEtbaY+GWoCYqfZoDC/MjH9wyhpGeh 6lx6e/XsdxjTC33laREVbrCqk1NSlHEU3seBcOX0a0exxAbVx2tSX/nOMjQ0hy7x4RNFsVQhq0y Tf2Mq6gDK7h1jIVv0Sj2jxKWGiDXt9r9ttELkHxSZIfI/ua95xsUcqD+IHtUToYoWTpWTcJjkJn 4IYubQhWNgEMougg3FvbIyx3hXoe4rf7ZJR6xyPvspCi4m8wbevVWRG6mR/kCXt/rK0lB2fsdXr 8H/vDnr9GL1YJJaXCJBokdOurLcNQ6AmfoA6kg1wWHA4i+C91dXkbOsIHDJ8KvDZfApFnfS6isG 1bSVkqW9ogxjuGndOwJYMAAuJKb96LjkmqsF3qGNaoTMxWfzJb4PuMI8VCVZ8wEvw36W+WpNEG9 r4RkqYBF1HBTwDCSVEgXL5q0blPd5JAVqw8lIt+LZzcS9TEZbZsxJ7EtRGpzAAnPMq X-Received: by 2002:a05:600c:458b:b0:490:af63:2cb1 with SMTP id 5b1f17b1804b1-490b6128dc3mr30990335e9.7.1780473299633; Wed, 03 Jun 2026 00:54:59 -0700 (PDT) Received: from [192.168.0.161] (78-154-15-182.ip.btc-net.bg. [78.154.15.182]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-490b0e20bacsm115325225e9.6.2026.06.03.00.54.57 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 03 Jun 2026 00:54:58 -0700 (PDT) Message-ID: Date: Wed, 3 Jun 2026 10:54:56 +0300 Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH net-next v2 07/11] net: bridge: don't recurse on the port's netdev ops lock Content-Language: en-US, bg To: Jakub Kicinski , davem@davemloft.net Cc: netdev@vger.kernel.org, edumazet@google.com, pabeni@redhat.com, andrew+netdev@lunn.ch, horms@kernel.org, jakub@cloudflare.com, maxime.chevallier@bootlin.com, nb@tipi-net.de, lee@kernel.org, linux-leds@vger.kernel.org, pavel@kernel.org, jv@jvosburgh.net, michael.chan@broadcom.com, jhs@mojatatu.com, vinicius.gomes@intel.com, idosch@nvidia.com, hare@suse.de, jhasan@marvell.com, danieller@nvidia.com References: <20260603012840.2254293-1-kuba@kernel.org> <20260603012840.2254293-8-kuba@kernel.org> From: Nikolay Aleksandrov In-Reply-To: <20260603012840.2254293-8-kuba@kernel.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 03/06/2026 04:28, Jakub Kicinski wrote: > port_cost() calls __ethtool_get_link_ksettings() on the port device, > which will soon take the port's ops lock. br_port_carrier_check() > is reached via the NETDEV_CHANGE notifier from linkwatch, which > already holds the port's ops lock, so the call would deadlock. > > Make port_cost() expect the port's ops lock held and switch to > netif_get_link_ksettings(). The only other caller is new_nbp(), > make sure it takes the lock explicitly. > > Signed-off-by: Jakub Kicinski > --- > net/bridge/br_if.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c > index d39571e13744..049d1d25bc26 100644 > --- a/net/bridge/br_if.c > +++ b/net/bridge/br_if.c > @@ -19,6 +19,7 @@ > #include > #include > #include > +#include > #include > #include > #include > @@ -30,13 +31,13 @@ > * Determine initial path cost based on speed. > * using recommendations from 802.1d standard > * > - * Since driver might sleep need to not be holding any locks. > + * Since driver might sleep, we need to not be holding any bridge spinlocks. > */ > static int port_cost(struct net_device *dev) > { > struct ethtool_link_ksettings ecmd; > > - if (!__ethtool_get_link_ksettings(dev, &ecmd)) { > + if (!netif_get_link_ksettings(dev, &ecmd)) { > switch (ecmd.base.speed) { > case SPEED_10000: > return 2; > @@ -436,7 +437,9 @@ static struct net_bridge_port *new_nbp(struct net_bridge *br, > p->br = br; > netdev_hold(dev, &p->dev_tracker, GFP_KERNEL); > p->dev = dev; > + netdev_lock_ops(dev); > p->path_cost = port_cost(dev); > + netdev_unlock_ops(dev); > p->priority = 0x8000 >> BR_PORT_BITS; > p->port_no = index; > p->flags = BR_LEARNING | BR_FLOOD | BR_MCAST_FLOOD | BR_BCAST_FLOOD; LGTM, Acked-by: Nikolay Aleksandrov