Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp2352467pxb; Mon, 20 Sep 2021 19:49:38 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxFi1bytKFY39WmT9xjDmoD2+QNx3YHYazlrvAj6E8jqChDoffQ/nJCj4eglyoOu9bt2R36 X-Received: by 2002:aa7:d619:: with SMTP id c25mr32665302edr.365.1632192578620; Mon, 20 Sep 2021 19:49:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1632192578; cv=none; d=google.com; s=arc-20160816; b=D0vsCVNVJZWx4YTdkKk5pfRCHjr6XDOyGebPFr5Qj1gljVxI8rQMHUFhm2iwhFgmrb 45xQOoyDwmJaO/1aI84OC1jRzhzIz3eraAIF1SBmlW76CPQenF/v77AAIpgZ/qg2fHYp d/GsqviUYxzVr6nSOil9Yi9PtWm15801WjRhkezwMkrtC24xTFis02SpkcRFBwIU2pkj Ns+Tit06z6i/dXJEr4mtlbXA5A3AX6gnP368VHKDdI6va8NQbPql1V7GBjft1zaekU2c WeNBWlpDOdr1okiM0jiCXEKSX0H1Uh81xmIFDn5GB88Az5+oDJsbMh4NjFnkda1fWwtj EuxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=YG8diEKjgp1q0QaflgIszJkrrowPJvn8uABnfAhxJi4=; b=Ayqdzj3b+O2Okyw3p8oPXAH9UFw242kL8ifSccTTSN4cfV8kJQKiCnuUUWqcg4zNAZ ZNjQpG/awIIQKNSYT+m5afKkN49ZzLalk1DmUqFE++PY1vYI7vm6DPvlPQgTckl6CwhY BsjXwaL5kZd+HbKoMiNyZi6wyKWi6z9g+SZT95pBAuzdbXstkQeAnr4gd4fY1AoyAClZ V3hPtCvOKCKZ1rU1W0yiRSrXNYRpdlYeH4axWKGHU5quwC2hnk1AjlsB2yWkyTTQQlA5 Du4z+fxg25MryxtdiluS4yhdIsDlmVMd0Loa5vWWyCeX+8qNhS053N6XWSoqxfMe6bKD P1JA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="Brxv/OOx"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w5si17338757edr.146.2021.09.20.19.49.15; Mon, 20 Sep 2021 19:49:38 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="Brxv/OOx"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1352879AbhITSiN (ORCPT + 99 others); Mon, 20 Sep 2021 14:38:13 -0400 Received: from mail.kernel.org ([198.145.29.99]:49712 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1380246AbhITSdA (ORCPT ); Mon, 20 Sep 2021 14:33:00 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id EED2C63302; Mon, 20 Sep 2021 17:28:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1632158894; bh=P1hrLYW79xzFWhURSrD3E32TZFMAZ3cLWzEPY9zz+ck=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Brxv/OOxcS6NCcTMjyjLE94lwvq/PEYAYbD1mZPARdb+Le3NOKeSyqHQ+JEw3RCpB jGpNhhHIR51oOWTm9wFs1lknMsX+IndMl3aFxakIl8Yhfrq56G/YvA8NjPA/sEeNlY bXpcy1mY7q9di7uswwMW+ihfWTbQSQ6TZtWTq5J0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= , Florian Fainelli , "David S. Miller" , Sasha Levin Subject: [PATCH 5.10 105/122] net: dsa: b53: Fix calculating number of switch ports Date: Mon, 20 Sep 2021 18:44:37 +0200 Message-Id: <20210920163919.240672303@linuxfoundation.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210920163915.757887582@linuxfoundation.org> References: <20210920163915.757887582@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Rafał Miłecki [ Upstream commit cdb067d31c0fe4cce98b9d15f1f2ef525acaa094 ] It isn't true that CPU port is always the last one. Switches BCM5301x have 9 ports (port 6 being inactive) and they use port 5 as CPU by default (depending on design some other may be CPU ports too). A more reliable way of determining number of ports is to check for the last set bit in the "enabled_ports" bitfield. This fixes b53 internal state, it will allow providing accurate info to the DSA and is required to fix BCM5301x support. Fixes: 967dd82ffc52 ("net: dsa: b53: Add support for Broadcom RoboSwitch") Signed-off-by: Rafał Miłecki Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- drivers/net/dsa/b53/b53_common.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_common.c index 52100d4fe5a2..a8e915dd826a 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -2556,9 +2556,8 @@ static int b53_switch_init(struct b53_device *dev) dev->cpu_port = 5; } - /* cpu port is always last */ - dev->num_ports = dev->cpu_port + 1; dev->enabled_ports |= BIT(dev->cpu_port); + dev->num_ports = fls(dev->enabled_ports); /* Include non standard CPU port built-in PHYs to be probed */ if (is539x(dev) || is531x5(dev)) { -- 2.30.2