From nobody Tue Dec 2 00:02:28 2025 Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) (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 100752BEFF5 for ; Tue, 25 Nov 2025 07:52:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764057126; cv=none; b=aFc2uZI4g6BreunH86Ll2XZTbLf06BaTcsSC9+20JnZi2dx+uaqGxplXb3Kv03k/M98WBm8M9/VLQc1Cus+mYR3tr+myfIwqCJqfiOK6kGdaDrcQWlUqLQvJvlLhToUscs2N5L9Ef/MlnGlIFqOiJMckCRyI1L3iJbJuI9gtbhk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764057126; c=relaxed/simple; bh=QQ9ntuYhygUsjfxWjbJZY9/FX0sWkRHe9KfAHu92J2Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=n2zXhnRR7aOZFUIk8oI/sBHp1YbRF95hwKhMVvTFVOWzg45V2LW9iURDnt08QHU+vpTI6xZSTVJtQs+08rqeL+j0Dx3GvWWhkc27BXXg3CtxmTVp1tUzyu7xA52c5hObGIgIN4O5alUlpuIf/z49bQldZChx5+QBkzpM/ukvJDE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=OFZMa1TM; arc=none smtp.client-ip=209.85.218.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="OFZMa1TM" Received: by mail-ej1-f44.google.com with SMTP id a640c23a62f3a-b739b3fc2a0so95080866b.3 for ; Mon, 24 Nov 2025 23:52:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764057123; x=1764661923; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ZOFFbceL7ixCdLph1FgW62yHiAksNzDjiAkR6G7AzZY=; b=OFZMa1TM/jsJMeLCNNZoQwdtJUU8d40uxMmxWMJTTDKJ4Tv+fPgkbcigT49IJ7QU/0 wnFtitz9JMa7ADHQFJCWj8qnEAHGdBUcfQTwntczCzP2wbbmruIkmzwZLQWL9MTvdyP6 QLffg+9LeO/XmLVbThjbCh/lVZNA7RAlZZVe/bUZD8pId+HtyHbLXJ2TqdS1DJPgUlOy ECxD1UW0gFbp6dPrv5h8zJT3dGpUh1y9OK7FldBlrVv6yVFlBrBNzMW1sKq9deu+8D5N iXND0be1TbclvOSIRlRGwbASRDbC9w7lH9VsrHfVPfSFxkJCl4OTShp+nua1bzdVFStF iVzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764057123; x=1764661923; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ZOFFbceL7ixCdLph1FgW62yHiAksNzDjiAkR6G7AzZY=; b=pTpX/ODYlMHXdMY8DR1YtzeNeZfGGYegWxwxEcxOb03UH6Za/iPx9tG6ju0oTAbyOK KxYgVicMj3pnNhRRVl3O3ErJsF9NyDCkAlY2xt9oY3CDGICvje3OH7w1/L8DDDbix5Xv 175xfExOFGqXWWrSB+0zAkFoEvrGrOjmFI+1tIdB1wOaRyMjG9zdXuHN5ZjgUOrM1cZw /dMcVd82AxXyjLSgekeBjqjNO4IroOJFwOd4Fia7pvm0xrd78bxxwR0jshRzG+KsEpus XmzSiIaqn8bInjmJGqgjg8Bi5vFXXOra7mUCseXy48FWgPPYyWOQNvZkis3qXmm7n7/k AIdw== X-Forwarded-Encrypted: i=1; AJvYcCUewwsqNGT3iFULku+BNBpzX0bda4wmG1FbYSAx98kOzAzV66T7goVPrD3zoR5BWsHU/oe+XK/YTcQ9Ghs=@vger.kernel.org X-Gm-Message-State: AOJu0YzU+LRLZ8mIF0UA5TvZOLLGOVRKDO9u/liMb2nCUnPM571GflT5 I3vJWgs2VVHMADpTmjFjXe14gZ0/Su0COjl5LVWIWiza84KQJ7avDQIr X-Gm-Gg: ASbGnctSrazbqEv9iGk8OK46u7UpcnGdIcyLhzlJzO7MdUn1TU+TBv1z3swZhgIWZck cKyb6XymxwlQbkm6Uo4mhvcfsy9MuRsw4QCEav45GbnWRnSl3AY/P1VcOD04c5QSsN3rxtdflKA uAB1/kjF8BRLGgx3YExr4WbBrbVnxVkZLB/mgEgE0VEVorA4Oefasyk6zPfrzqBM2EMQcaq1Exd q7KyV8B4HhMf0VbSKz0CoNbpDLYgX5/TOY9NoYMu45RzbwRg/H/iDBEYeIWqmmZtqeIFw0EkCPT AHldOA1NrMZrGoX6BB3RcPCNbAUCaP1OvNagBTIhM+IFvwUQdzPrV4YPql+CoFNoWsrX7NpGj8X NidIAj9rLG1CULcAKzRz3Pfh/WG/V/WO+RMkG2SVt12Ra3HN3Qq26l5I0z03ssHTtnEXnyzjOOK NkvZWq+WvuzNbMEBmQesffDkkHRhgPR1R1o5u7Oq/T5p8GycdtHPk33N0xFPjE6CEjwDuM6NQHk Y4Cxw== X-Google-Smtp-Source: AGHT+IHPFwvqG3ONIsm/AzjrLUIRNEbm0l92p/sdhNru/P9U5+Z4BpK4CrBOtHk9NZMM7UpCONTnkw== X-Received: by 2002:a17:907:7f19:b0:b73:9b49:2dc7 with SMTP id a640c23a62f3a-b76c558f4b0mr157643366b.52.1764057123075; Mon, 24 Nov 2025 23:52:03 -0800 (PST) Received: from localhost (dslb-002-205-018-238.002.205.pools.vodafone-ip.de. [2.205.18.238]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b7654d7cb3bsm1536176766b.27.2025.11.24.23.52.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Nov 2025 23:52:02 -0800 (PST) From: Jonas Gorski To: Florian Fainelli , Andrew Lunn , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Cc: Florian Fainelli , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 1/7] net: dsa: b53: fix VLAN_ID_IDX write size for BCM5325/65 Date: Tue, 25 Nov 2025 08:51:44 +0100 Message-ID: <20251125075150.13879-2-jonas.gorski@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251125075150.13879-1-jonas.gorski@gmail.com> References: <20251125075150.13879-1-jonas.gorski@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Since BCM5325 and BCM5365 only support up to 256 VLANs, the VLAN_ID_IDX register is only 8 bit wide, not 16 bit, so use an appropriate accessor. Fixes: c45655386e53 ("net: dsa: b53: add support for FDB operations on 5325= /5365") Signed-off-by: Jonas Gorski Reviewed-by: Florian Fainelli --- drivers/net/dsa/b53/b53_common.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_com= mon.c index 72c85cd34a4e..7f24d2d8f938 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -1966,8 +1966,12 @@ static int b53_arl_op(struct b53_device *dev, int op= , int port, =20 /* Perform a read for the given MAC and VID */ b53_write48(dev, B53_ARLIO_PAGE, B53_MAC_ADDR_IDX, mac); - if (!is5325m(dev)) - b53_write16(dev, B53_ARLIO_PAGE, B53_VLAN_ID_IDX, vid); + if (!is5325m(dev)) { + if (is5325(dev) || is5365(dev)) + b53_write8(dev, B53_ARLIO_PAGE, B53_VLAN_ID_IDX, vid); + else + b53_write16(dev, B53_ARLIO_PAGE, B53_VLAN_ID_IDX, vid); + } =20 /* Issue a read operation for this MAC */ ret =3D b53_arl_rw_op(dev, 1); --=20 2.43.0 From nobody Tue Dec 2 00:02:28 2025 Received: from mail-ej1-f48.google.com (mail-ej1-f48.google.com [209.85.218.48]) (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 11B0B2D2384 for ; Tue, 25 Nov 2025 07:52:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764057127; cv=none; b=DywwjvF20ClTFRLzEr8oLjJyWrRoxPivxHdbHNJO8sTgceMrL2dO/ovtkFKlVRgkpZ/G8UxvxycCNUD4YGJVG7DYW5X28NcyObbQ0OH9ZxILZRSzUZB+2eOWlW+y/pm6xeBt7tGc62L2HwHbkp2BMWszvM+OTN5Q45LlnyruRkA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764057127; c=relaxed/simple; bh=xJrLWiypSzv7tbm+UXydfgomeBu1RIlJpABvqb+ejXs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=s2NPhlmdkwcosDovmVPIrvI4gB7jCIandqXf9JM+A8DLgr4NkieMouoqaJJ5U8LSwaYekARS7Xw8SYQwkjF4NxpwLxpExQMQFZxiWmgxmfRmNOULBbyT3xIqvkRUYHRh3BUGK+CBebs3Z30LMPqGYQ2O55HEaDkqSHwcgUasFdI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=fBQ+Y+TE; arc=none smtp.client-ip=209.85.218.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="fBQ+Y+TE" Received: by mail-ej1-f48.google.com with SMTP id a640c23a62f3a-b736d883ac4so952155966b.2 for ; Mon, 24 Nov 2025 23:52:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764057124; x=1764661924; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=KnGk+tUKUAbUfGbDKRIvVPAkIwqqrCfs0BfcYDE6rSQ=; b=fBQ+Y+TEO9lTP3MFNs38JTikW25Wda/K7mgZbSC2lmCwSdLcHSK6GPGcX+yc2466CV YogCNBDWfxY+MqSJ1OXqkg2G+yvFvgSBPuGRJoLQM0kgu3DRKwPKuwGSIUbtan23MKTX /saGD/O6ooXA1bnGDaD+8XOVy6zqTtYHhKCmZkOZlapGcAPlbnM+oulTGMEE0Td03eCx Zeb3Nt2g4u8r+hoohJt6ve6rCdL9ziDcJjKSViEOH1LB4qBzZ5G9XsZ/+3Qw6Yj5913C tQSwPgsI4KPYFVmYJCgh6Jspir0LibgyVdeg7zfBKjQ+tseEtV5yqN28JBC4St/RJdOe coZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764057124; x=1764661924; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=KnGk+tUKUAbUfGbDKRIvVPAkIwqqrCfs0BfcYDE6rSQ=; b=Y3waK5uaXAMw5fUBorFbYMxbXR6+qvKqiKO88QDlJarW+WGzkuosD1wbYVAJ0NKjNI o4IEfQkrWeQiJGP/LMm/rirP+ewhPgnTuIdy/PCUIqhZIJWOcWyb+egYBpYBwo4G6Ftr HyJxvJQAaLKDz5rpSB6WbPJZQ3iD0HWVQdKAXujq2lD16FR90HcXDir9IN1oNB9cSZdt STSLIAdyzSLNMlPmbfme4aQqcevAJ7NrgUSdC5x6LFCFKYIJIDm3rZcCMpO8nG5Ppbav NDAyXy051ivS3Nd0OPhE0hZSUo9zVo8SyKQOzqiN0zFVvGFaHPvedZ3v2Qj8NE29BJ2Y oSCg== X-Forwarded-Encrypted: i=1; AJvYcCX0+L7gyZ8cLhbir6eH7qxmdRPRcZdhF+lbAOdTlmhT6FQIDBTgNjVxl6sFQzhkQr1jBj8QDkx9Yr7VDGI=@vger.kernel.org X-Gm-Message-State: AOJu0Yz5eFoLEzfxm2kjhrF8dM5GXl4hEygvbDJzvUxD1aLGifSEQ42t k8oSAlF5DiUHnE4wOiccGkAc0BD2DuFmhPBkCfoV401pKcXDNpIJqClV X-Gm-Gg: ASbGncvMOsC3umj2LKnwVsWFfRPxL0ywIqua3HIKAPgJKuybshUeYr9B+h+FOQiWthx Kh5ubx/inArcqDQS6u7uYogwk/7nZb7lB1MH3LulvReODY0h7KxT1XCpXFQahv+DzV5/bpKIY4j 4ys9S0zvB56SBjPYgZtZ8nIHmB9qDHOxdEdBvnGqQTcv0kNm/AV1HGe5nOlQZqTUfrfDN8IH3Y+ lNu79Lm+5Vrk9rsx78LAVbahLVB7Uo0Ih64aBw9Whqo4dLwTZGPgzOFXH+075hYLJLsSALjo+1x 6X8fVIpiy2yScLc88Tg9b0tdfP/9m0fcBP2r/RrRlb92eO/ei7wtVHUsfKUvmoPTTv5X6hO4ghL mgeUo+/Zzp8aLokvMJ1ew1TcQOrpvbarEY3d8jx5EQ6nTeHGsZA6zoI1jEJOSdw1PjRN6nL0mW7 wTdmXvoeT58jJbHbd8Hp5XqprYXJ4VwgEc+6aZJDKC4vz6MSeQPBD03f8QuMYMWlPBgzg= X-Google-Smtp-Source: AGHT+IHvwo9+xV6GMAjFeApyTuG7qafGljCCYbe1raelFMtRP0VrlQdL6+eKz4zTouxKDzCMub8spA== X-Received: by 2002:a17:907:3f9c:b0:b73:9792:919b with SMTP id a640c23a62f3a-b767158227fmr1611162466b.13.1764057124254; Mon, 24 Nov 2025 23:52:04 -0800 (PST) Received: from localhost (dslb-002-205-018-238.002.205.pools.vodafone-ip.de. [2.205.18.238]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b7654cefeadsm1528801966b.6.2025.11.24.23.52.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Nov 2025 23:52:03 -0800 (PST) From: Jonas Gorski To: Florian Fainelli , Andrew Lunn , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Cc: Florian Fainelli , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 2/7] net: dsa: b53: fix extracting VID from entry for BCM5325/65 Date: Tue, 25 Nov 2025 08:51:45 +0100 Message-ID: <20251125075150.13879-3-jonas.gorski@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251125075150.13879-1-jonas.gorski@gmail.com> References: <20251125075150.13879-1-jonas.gorski@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" BCM5325/65's Entry register uses the highest three bits for VALID/STATIC/AGE, so shifting by 53 only will add these to b53_arl_entry::vid. So make sure to mask the vid value as well, to not get invalid VIDs. Fixes: c45655386e53 ("net: dsa: b53: add support for FDB operations on 5325= /5365") Signed-off-by: Jonas Gorski Reviewed-by: Florian Fainelli --- drivers/net/dsa/b53/b53_priv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/dsa/b53/b53_priv.h b/drivers/net/dsa/b53/b53_priv.h index 2bfd0e7c95c9..3b22e817fb28 100644 --- a/drivers/net/dsa/b53/b53_priv.h +++ b/drivers/net/dsa/b53/b53_priv.h @@ -350,7 +350,7 @@ static inline void b53_arl_to_entry_25(struct b53_arl_e= ntry *ent, ent->is_age =3D !!(mac_vid & ARLTBL_AGE_25); ent->is_static =3D !!(mac_vid & ARLTBL_STATIC_25); u64_to_ether_addr(mac_vid, ent->mac); - ent->vid =3D mac_vid >> ARLTBL_VID_S_65; + ent->vid =3D (mac_vid >> ARLTBL_VID_S_65) & ARLTBL_VID_MASK_25; } =20 static inline void b53_arl_to_entry_89(struct b53_arl_entry *ent, --=20 2.43.0 From nobody Tue Dec 2 00:02:28 2025 Received: from mail-ej1-f48.google.com (mail-ej1-f48.google.com [209.85.218.48]) (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 3ECBE2D7DD0 for ; Tue, 25 Nov 2025 07:52:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764057129; cv=none; b=VoQOKNfmw8GDYBo8/Eu2rX6B1QX2Hzgg2oUcsDRWW6oNLrN2R2r8xGS1pB4+QpdVtSw4bixhJqhrR7tP4EZtaAxEyF+Q7k5vXbsKnaffzlCiwKYz3SC+KCknZfH4lBlUpUCqhWWOnNYUM2Uq9k/DIjDe9k9x4LwtpK56uMn50T8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764057129; c=relaxed/simple; bh=zCC4+YkA9UAw7b7xc8yUmNa0ykjEhE1Rm4iJZzm1pEY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mtuqnmbcrIo37CRasFWax6fzlgyChHmziMG79dm/ZOBsMyyre7XenjB+OW1+7jz3Gy5+3NaSCnlGU3D01DkbEDA9TD2gOa0IvKFVnMhb9Bh2upEJa3/HSbuDeioe9WZcxDZgjPkhhYcRUYsSVtUMI0K/bF+z0qQ87gqRLdiJeIs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=TelOzZTY; arc=none smtp.client-ip=209.85.218.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="TelOzZTY" Received: by mail-ej1-f48.google.com with SMTP id a640c23a62f3a-b735b7326e5so1043863066b.0 for ; Mon, 24 Nov 2025 23:52:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764057126; x=1764661926; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=BSKGq0zk1sClAA4+Iq95EBi32w5W2hPy1VTmIbO4UJw=; b=TelOzZTYPGm8wwUjrcilrMBZ4RZxRTlOdKFtNBLZ+sjGG35JmJKLJXNL4P6LxqIN7L UOrBrXmwKCCNo4Tin8yo2MOoqLs8moewzHoeXFfqrCMJWXDLasku1a9IuP0jHblrFmll DScmmvH3EJqclUiqQNsIU5qz/XK/VW1h5E2xpMshWONZsNsmRDLuZUSsFBT9CAeIKJPI McExhGqIe5TJ1E0nNNKw5uNUH794kXgYJtcmNNcU4exZxP7yq6BCxLxYy0gReHy1IHbD vfqSereVjckzFETLcNBpV3U+EtqLLXJw2d0vVJngRf0jU2Y9E2eZQIiGDKbCfOlTlCYX toOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764057126; x=1764661926; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=BSKGq0zk1sClAA4+Iq95EBi32w5W2hPy1VTmIbO4UJw=; b=wtCXXiALdYttJ1b0GkEifccQ1IQwwoTaTs+Nq86NfSnVPZN0sQ+i0geEVPSbeDEVrc NjrPAbBhDh3DvpfU+R8Z9N8M9gRSetyF6aVHI26BcabrVulJ6ncszxvnAEQcaCZRv0Y9 DmvYGv1G3gzoSm5fbk2fVUDWgeysC30SvHLOLfr34L5ASbEeeSBmz8PMLdv/UEgxQAr3 fG0Z9KfviQGTMF5pnYisaPRMtclL+9EWCUNyVOpkhOzme5CcowPBNR8OC3J0lwFoM2+S pvUZC6g9f6wSa4jU/oVJqRDfe2c841uQMEu5hxu+OgpJNaJDN2mXHcLRiTHxSMs7M+gm /7gg== X-Forwarded-Encrypted: i=1; AJvYcCVXlsz4fEb1B43c8nP+NeWsPCaezIIK3dcloNQ7Z1tEXzOrN9RvMtwLCp63Sxg5RVxQefoSu2801aq21Uw=@vger.kernel.org X-Gm-Message-State: AOJu0YxEqzrwCNr3zriFucYSHlbHMDuQqpmUdjtDSuT4vZvEgSGu5Gh6 2AhCpbWRJQFJfeXiKcj9b8TEK4JZHX6jxG9Su7XVUACQaZtp4U6dT47J X-Gm-Gg: ASbGncuqWa45+mNGCG/XtrZa77CCL9vMHjKFzkOvcRiFI6v+su/TZRrJ1VcXmebwut1 WwZuSOwaso7KXFkG4SBCTx/SLQ0ngdPCVT2dUID8ykUgEw27Y859wnFrVkE9CAqPI/7QrddWLNC KRh19eEUsXil63fVu3ilFKg5qcAvidX8H5GaCsz1R5PKMzYpiXR3T9l7iimO1bgKMthKL5Yp1rf lGgHq1XxFpIJ3ikYXuzjnabToydFv/G7UbK7A741d7q9C+mjKHZs6VfuGado37I9GDDDYrCO9n4 3lQq0TkdhYwMRDSwM2SUlwvuldw38GKHe4rlKD7Vz/r5lfxnOh38hItoa92c9C/tLZCxvn1jtlj EdmsQvZosLYbMRuAM73ZXyh+l7vXGz+dLOb8ooI8257YZs0fS2gqxPxmBy9SVsrvGJKK7r7y2Og 2PcSvzXUQ5NrdZEZyGCpstQKkcDM4R83PypEQBlWEL4g5SslbohNvze/S7GLjNIxMQxuY= X-Google-Smtp-Source: AGHT+IEuoa4sdgQqqYNp7CqZVz2E21Qbjw8iF2McemoqfWLRx21Vkc5hzn3Uvm8M2w3AUT4YCyd2Ew== X-Received: by 2002:a17:907:3d87:b0:b72:671:b2a5 with SMTP id a640c23a62f3a-b76571367f9mr2358253266b.3.1764057125492; Mon, 24 Nov 2025 23:52:05 -0800 (PST) Received: from localhost (dslb-002-205-018-238.002.205.pools.vodafone-ip.de. [2.205.18.238]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b7654d7cb3bsm1536185666b.27.2025.11.24.23.52.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Nov 2025 23:52:04 -0800 (PST) From: Jonas Gorski To: Florian Fainelli , Andrew Lunn , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Cc: Florian Fainelli , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 3/7] net: dsa: b53: use same ARL search result offset for BCM5325/65 Date: Tue, 25 Nov 2025 08:51:46 +0100 Message-ID: <20251125075150.13879-4-jonas.gorski@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251125075150.13879-1-jonas.gorski@gmail.com> References: <20251125075150.13879-1-jonas.gorski@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" BCM5365's search result is at the same offset as BCM5325's search result, and they (mostly) share the same format, so switch BCM5365 to BCM5325's arl ops. Fixes: c45655386e53 ("net: dsa: b53: add support for FDB operations on 5325= /5365") Signed-off-by: Jonas Gorski Reviewed-by: Florian Fainelli --- drivers/net/dsa/b53/b53_common.c | 18 +----------------- drivers/net/dsa/b53/b53_regs.h | 4 +--- 2 files changed, 2 insertions(+), 20 deletions(-) diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_com= mon.c index 7f24d2d8f938..91b0b4de475f 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -2125,16 +2125,6 @@ static void b53_arl_search_read_25(struct b53_device= *dev, u8 idx, b53_arl_to_entry_25(ent, mac_vid); } =20 -static void b53_arl_search_read_65(struct b53_device *dev, u8 idx, - struct b53_arl_entry *ent) -{ - u64 mac_vid; - - b53_read64(dev, B53_ARLIO_PAGE, B53_ARL_SRCH_RSTL_0_MACVID_65, - &mac_vid); - b53_arl_to_entry_25(ent, mac_vid); -} - static void b53_arl_search_read_89(struct b53_device *dev, u8 idx, struct b53_arl_entry *ent) { @@ -2746,12 +2736,6 @@ static const struct b53_arl_ops b53_arl_ops_25 =3D { .arl_search_read =3D b53_arl_search_read_25, }; =20 -static const struct b53_arl_ops b53_arl_ops_65 =3D { - .arl_read_entry =3D b53_arl_read_entry_25, - .arl_write_entry =3D b53_arl_write_entry_25, - .arl_search_read =3D b53_arl_search_read_65, -}; - static const struct b53_arl_ops b53_arl_ops_89 =3D { .arl_read_entry =3D b53_arl_read_entry_89, .arl_write_entry =3D b53_arl_write_entry_89, @@ -2814,7 +2798,7 @@ static const struct b53_chip_data b53_switch_chips[] = =3D { .arl_buckets =3D 1024, .imp_port =3D 5, .duplex_reg =3D B53_DUPLEX_STAT_FE, - .arl_ops =3D &b53_arl_ops_65, + .arl_ops =3D &b53_arl_ops_25, }, { .chip_id =3D BCM5389_DEVICE_ID, diff --git a/drivers/net/dsa/b53/b53_regs.h b/drivers/net/dsa/b53/b53_regs.h index 69ebbec932f6..505979102ed5 100644 --- a/drivers/net/dsa/b53/b53_regs.h +++ b/drivers/net/dsa/b53/b53_regs.h @@ -376,10 +376,8 @@ #define B53_ARL_SRCH_RSLT_MACVID_89 0x33 #define B53_ARL_SRCH_RSLT_MACVID_63XX 0x34 =20 -/* Single register search result on 5325 */ +/* Single register search result on 5325/5365 */ #define B53_ARL_SRCH_RSTL_0_MACVID_25 0x24 -/* Single register search result on 5365 */ -#define B53_ARL_SRCH_RSTL_0_MACVID_65 0x30 =20 /* ARL Search Data Result (32 bit) */ #define B53_ARL_SRCH_RSTL_0 0x68 --=20 2.43.0 From nobody Tue Dec 2 00:02:28 2025 Received: from mail-ej1-f48.google.com (mail-ej1-f48.google.com [209.85.218.48]) (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 715CF2D8797 for ; Tue, 25 Nov 2025 07:52:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764057130; cv=none; b=Vt93Ao/YYnWp3vtLsJrfZPhlF1A/d39D30aj+6oadJD1I+UlwFtVC2qWMYkf/azA/0kFUghICJPiRe72bzfroaNPIssEUFvDsBluCl7DJtNvqWvhH6m3ySyGvzy35Lh7YBqatiAVOkdn6YFMoc+Xtf0rgbIOVmBVuEYF9RHNbao= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764057130; c=relaxed/simple; bh=YL8r10q6Cyoc+80jCsccVrd5bdJg66KLlzZhzSjGjiI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=r6lk4slMLYwn2S6HmPjvmOvwR+KQJDO+bliuKnxwHRwjk5AU45tEtc2czos/cl9yvZwn2AJK+9dTlmteBEx7f3zUfZDKUeSgVO5lQd5rsbRzSpDDrROkr2bCufn5wvIScpWbVg9zroaAfoIP0eWjUKkyCQ+XPFyNwa49iRtqLhw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=UJao6vVl; arc=none smtp.client-ip=209.85.218.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="UJao6vVl" Received: by mail-ej1-f48.google.com with SMTP id a640c23a62f3a-b737cd03d46so706620066b.0 for ; Mon, 24 Nov 2025 23:52:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764057127; x=1764661927; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=IKCxHvyy7SHsk3XOq3AZ73QPflDy850m7NcWBvFdtb8=; b=UJao6vVlaBfNWZNGAQBO6PmNveyhvTyf1Y+qCXjuR2aAz5mP7OZTlsqHaaVYWPfWz9 d0b6hreWSzUDeCT/YzcnJJalKAiVK1z1C25HjEZ2JTPhkm0agwLuUL+nCHWKJQezJ9BE ZZkn0D+BjoJe5DcXvwsB3Eo2I6ygaGysnO7dJa7+0sSqlvEKfmqGOwVV+Ye8p5tT+P0K 8Z/dKM6DoO7uAzV3E+sOnSetpN7CdizcbR8Y8Tml+RzLz8LGGxwMkxHIwsHqqYMo4768 YmAON2VXcgf2rBIJbVokOt2PJwb+8J+7fH6ULc4/6qMQE4dL94tMyvUf72w9UbOWFLjx PfXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764057127; x=1764661927; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=IKCxHvyy7SHsk3XOq3AZ73QPflDy850m7NcWBvFdtb8=; b=pN1ngjdS/glTfgH4zzbysw76W+crHYj/wlcofT5GvqO5FKhRB9Nl2KAJ2OUD0/dxY5 xtaYSpSWOyOxiJxI4qXHapidmb22uwC9XWD9bn2HjLPcUACNFCeGqssky5WBf68MMqn/ FZxBF6AeMHvhuicAm80uvcHuU2R4RbY1SUYOurBapum3+GEdY8olWwVK9B+k3QHmiyI0 mnIy0Jl4F3gE5iXcTcug+8giFNg+SfUtcgTAPV3RXYR3Il6g27ATtDlR0v8JlePDiowG vE3wkE+n4LJssB5l2usHbUOaU0wgWDrlh/7YyAtZHdevgchI270Y5BJH5eeFXxZrNJ0Z /A+w== X-Forwarded-Encrypted: i=1; AJvYcCUpHTijzYW+n5W4rqCWWhdQEaYAsrY1uODDOsfv5B15TNSpnGC09vGKrm6IBNswj1gFxPpwq3l6PxIYdDo=@vger.kernel.org X-Gm-Message-State: AOJu0Yw/+QgzDKcEmyyWXUQ66mP0351Mo3QqbmjCDaIYbRDaf2Wfiio/ 6w5Cxfropj7rZaZzJRxND7qz5Pi4rEC9O8bv8q6fndnSQa+maxyv4pEn X-Gm-Gg: ASbGncs9XK+mEqVRs9tCQS56sefQHUjJh2a9lD+fyQ/eFAedMK8mzPg0/Y5KpXJUsUy hO4MpU4ronpEK0XlP7KPwHuESfWCWzXL/SkuXF6EobmR7HnHwUdWjQNfclCkuCCZ0utx3tQBFPv MP7PEYeaQPwh/bbl4jSloOgEpyeO1w120ZV3zp2k7zaW/Uqs7B3q32JCYuesj/89eFVk3Dihisc oKw8b50hRQOyE3twGCSEwfr5ad7VAMVFfdqVQG0Qfw2sxIReM+5wR9WJYK26lrkeYg0cCoRIq6M oG0OaTyW/cCxDWiRqN3HmNMg32SVt8fFf51yI2+T4I76bfbe+eQ+JQg6qWgHrG2AlvqajjfPgKH kmbG8EhzLzD1IMEylzJtM2W4vLm7G8nI2Ulp90muKnKRC04ncMdLszF8+2hjIVmgdcit8XT5iiv PopQ1ACby2mFKaR45CaNy+pYu+O/xc5AG3v9CFB760Etj4wml25j9WiKTiaadCToUmE2c= X-Google-Smtp-Source: AGHT+IHc7ADn75HdWsysif3utKXdEjd/ikCNbfsIT1GW6gycIU+WxFJFvgTMUyuNO4Vv8P4JsntrpQ== X-Received: by 2002:a17:907:1b28:b0:b73:6f8c:612b with SMTP id a640c23a62f3a-b76715653d5mr1537608366b.16.1764057126640; Mon, 24 Nov 2025 23:52:06 -0800 (PST) Received: from localhost (dslb-002-205-018-238.002.205.pools.vodafone-ip.de. [2.205.18.238]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b7654d55d7fsm1512575466b.21.2025.11.24.23.52.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Nov 2025 23:52:06 -0800 (PST) From: Jonas Gorski To: Florian Fainelli , Andrew Lunn , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Cc: Florian Fainelli , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 4/7] net: dsa: b53: fix CPU port unicast ARL entries for BCM5325/65 Date: Tue, 25 Nov 2025 08:51:47 +0100 Message-ID: <20251125075150.13879-5-jonas.gorski@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251125075150.13879-1-jonas.gorski@gmail.com> References: <20251125075150.13879-1-jonas.gorski@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" On BCM5325 and BCM5365, unicast ARL entries use 8 as the value for the CPU port, so we need to translate it to/from 5 as used for the CPU port at most other places. Fixes: c45655386e53 ("net: dsa: b53: add support for FDB operations on 5325= /5365") Signed-off-by: Jonas Gorski --- drivers/net/dsa/b53/b53_priv.h | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/net/dsa/b53/b53_priv.h b/drivers/net/dsa/b53/b53_priv.h index 3b22e817fb28..bd821d60ac90 100644 --- a/drivers/net/dsa/b53/b53_priv.h +++ b/drivers/net/dsa/b53/b53_priv.h @@ -344,12 +344,14 @@ static inline void b53_arl_to_entry_25(struct b53_arl= _entry *ent, u64 mac_vid) { memset(ent, 0, sizeof(*ent)); - ent->port =3D (mac_vid >> ARLTBL_DATA_PORT_ID_S_25) & - ARLTBL_DATA_PORT_ID_MASK_25; ent->is_valid =3D !!(mac_vid & ARLTBL_VALID_25); ent->is_age =3D !!(mac_vid & ARLTBL_AGE_25); ent->is_static =3D !!(mac_vid & ARLTBL_STATIC_25); u64_to_ether_addr(mac_vid, ent->mac); + ent->port =3D (mac_vid >> ARLTBL_DATA_PORT_ID_S_25) & + ARLTBL_DATA_PORT_ID_MASK_25; + if (!is_multicast_ether_addr(ent->mac) && ent->port =3D=3D B53_CPU_PORT) + ent->port =3D B53_CPU_PORT_25; ent->vid =3D (mac_vid >> ARLTBL_VID_S_65) & ARLTBL_VID_MASK_25; } =20 @@ -383,8 +385,11 @@ static inline void b53_arl_from_entry_25(u64 *mac_vid, const struct b53_arl_entry *ent) { *mac_vid =3D ether_addr_to_u64(ent->mac); - *mac_vid |=3D (u64)(ent->port & ARLTBL_DATA_PORT_ID_MASK_25) << - ARLTBL_DATA_PORT_ID_S_25; + if (!is_multicast_ether_addr(ent->mac) && ent->port =3D=3D B53_CPU_PORT_2= 5) + *mac_vid |=3D (u64)B53_CPU_PORT << ARLTBL_DATA_PORT_ID_S_25; + else + *mac_vid |=3D (u64)(ent->port & ARLTBL_DATA_PORT_ID_MASK_25) << + ARLTBL_DATA_PORT_ID_S_25; *mac_vid |=3D (u64)(ent->vid & ARLTBL_VID_MASK_25) << ARLTBL_VID_S_65; if (ent->is_valid) --=20 2.43.0 From nobody Tue Dec 2 00:02:28 2025 Received: from mail-ed1-f44.google.com (mail-ed1-f44.google.com [209.85.208.44]) (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 CE5E52D9EC4 for ; Tue, 25 Nov 2025 07:52:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764057131; cv=none; b=p/bIAhvRYzZq4lFbM1yG2D0MBFi7nwBFcfMd9EwU97uMR13NRIooaAy+OaZuz8yaLlmjoV0mSKEV+rGJFwcHhaVGZ5ndFle9MoJIs8Bwe2342VwetyeHn0MCHuH2Kis3LaMnYoUXOcE8Mi9D6Z59lKmowXqPnctp/ZBzU1KWwNA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764057131; c=relaxed/simple; bh=Nvfu7MM5pHEDLKIO/mlFFCj+GO54Sm9aobXGKhtPtE8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ac4w/Vx78pRSSAM/LSUf/9kpx0fDkKW4aYZROfVFPnVMnpwuvEHSzCeEwZm57BtbBf6NIyU39/urndwrcOZ4IdcRqNpnXfsEV6uMXbi4owbN9d/Rtw/9Cu370ukwpl0NyMaOEBP+Bb+9rCVMykgokyQQLAOKE7OSmXD5W0/r7WQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=EHALn+Bb; arc=none smtp.client-ip=209.85.208.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="EHALn+Bb" Received: by mail-ed1-f44.google.com with SMTP id 4fb4d7f45d1cf-640a3317b89so7679389a12.0 for ; Mon, 24 Nov 2025 23:52:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764057128; x=1764661928; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+cLF6OW+2TrUATylsfca7SRjZ4XkxUire7MR3XBf0nc=; b=EHALn+BbgPfKg8yjgyzLBLA7SfWKDsd+nm6mfuldWcgYSaZ11kO+Q6iiA24vYBh5eH ol+qcwlPlQP0lduPceSrkl3e1rvglZ+LvPknuv39Pc23an2e0TZjDnhktWVn8nT94B3k xROqQnYp8FtHO8OPPTD8gC8psV0JJQRqRbutlhI3pwMNTUJ+VVw3U28nbZN23mHcl4vt JWrHT8V3++qHk7Su8JLxe18CP0jAdpnq48Ned9XW3Pz5/safCnNARuDI6bT+SOkWHLdD SGuaZbJi/KjOjHdG6jXFPP8spd5uoX9HtqLT0P+5COn+tYsAuV4oKoXowVBFkIo8Hm/Q depA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764057128; x=1764661928; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=+cLF6OW+2TrUATylsfca7SRjZ4XkxUire7MR3XBf0nc=; b=JEqusu0kmt0NReMMpeUUjDmmhPxuPfSpMxGbD1PycnCQKrP8fHfnudoq5bhO7fptYf YVK0g0RK68JSCepdBstRLC+X4kZNz8KHlfLvdvA0FAfCirhGPWsIl2Cj8UW9zjZqJIKF 5W38NFm2B0W0RD513FMRFcGJMrdv1SV4cLueHeQx6AxexrMyd6+9RJlKLCUviO2HKR2T xMzZ9CvCQ6Dt4K5R3PMTxkZ0b8ScC42O8tUoaxq4yaAxKxQTixlMABMi/zR5XpDZ+7i1 ObA9/c7N8OqM7sgEAsHMTfCyTXToBOaF9ZZidZpcdVabvw7R5/kdpAourivkH2GpXIN7 r7Hg== X-Forwarded-Encrypted: i=1; AJvYcCUEnaCxmz++SZRJkoyf1fHBNdrhiEpoFp1XH0K8/SwZZsya7aVAQiqX9jbK/YKBLXHr2SxFQRPmgmUIFzw=@vger.kernel.org X-Gm-Message-State: AOJu0YxkyuaGna93m01u2ZXafZT3+kMu05x0ahWJvqj5v2RwQ9jx30lv IiMft/b53DBsxCNxNyWhDa6F/LLRSP+3pt/O9oEWUO1AbWazEcIN5w0B X-Gm-Gg: ASbGncuPgDNPemJZbUpmNLuEImyPFyt6YftrMQ9mNXoAnJJoAJ2t6pjOZCQy8BhGW+I nau3nUgDvh7AOn+G89bR0FhsfgGGe0zh4UKFXx7oGDTkna/D7F2bqELgPTStusLiPmg8PexT3PJ +HtWVOuNN5/ibwGieDRoNAl8p9VFuWE8TSIEvrrP8Rt6v9aNCW4TzUy/djOHMriHAcIFXMtEJfi 6jNvePOtwI4rkoq0DOHBSW/ED2UrMxxdGLNK27s6az2O1gWJC4kcLf8cTPnxvuITYtGLVNlkV9F ER0YeSrTCiitKYTFDJPUeJ6Sca6zaHEz+0h69LCG0TfERYT7xFn5wj1Nt74A5U+LD5aMFgPpkCy yW99cwB2CgGgXbFstWQ6frvVQjSsBxC6SdxNwyhb5R+urPt2O+fXfmQIIdIV4FmDA+VeaASWEIv bZU8AbQ4ZAMuSJS/EoUBqeA8Lm9wN1bIidig+hNmQIIexSTPdAoqMb8kLAYUxyNSt067U= X-Google-Smtp-Source: AGHT+IGyoTxPMMJ9r04O6fUQyypFHVb2CsZTh5pjSnqd6/53xcOrWoq/NvrC4HH7fZ1Tgl32q5x1UQ== X-Received: by 2002:a05:6402:2348:b0:640:80cc:f08e with SMTP id 4fb4d7f45d1cf-645eb78686cmr1637901a12.26.1764057127790; Mon, 24 Nov 2025 23:52:07 -0800 (PST) Received: from localhost (dslb-002-205-018-238.002.205.pools.vodafone-ip.de. [2.205.18.238]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6453642d307sm14469110a12.19.2025.11.24.23.52.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Nov 2025 23:52:07 -0800 (PST) From: Jonas Gorski To: Florian Fainelli , Andrew Lunn , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Cc: Florian Fainelli , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 5/7] net: dsa: b53: fix BCM5325/65 ARL entry multicast port masks Date: Tue, 25 Nov 2025 08:51:48 +0100 Message-ID: <20251125075150.13879-6-jonas.gorski@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251125075150.13879-1-jonas.gorski@gmail.com> References: <20251125075150.13879-1-jonas.gorski@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" We currently use the mask 0xf for writing and reading b53_entry::port, but this is only correct for unicast ARL entries. Multicast ARL entries use a bitmask, and 0xf is not enough space for ports > 3, which includes the CPU port. So extend the mask accordingly to also fit port 4 (bit 4) and MII (bit 5). According to the datasheet the multicast port mask is [60:48], making it 12 bit wide, but bits 60-55 are reserved anyway, and collide with the priority field at [60:59], so I am not sure if this is valid. Therefore leave it at the actual used range, [53:48]. The ARL search result register differs a bit, and there the mask is only [52:48], so only spanning the user ports. The MII port bit is contained in the Search Result Extension register. So create a separate search result parse function that properly handles this. Fixes: c45655386e53 ("net: dsa: b53: add support for FDB operations on 5325= /5365") Signed-off-by: Jonas Gorski Reviewed-by: Florian Fainelli --- drivers/net/dsa/b53/b53_common.c | 4 +++- drivers/net/dsa/b53/b53_priv.h | 25 +++++++++++++++++++++---- drivers/net/dsa/b53/b53_regs.h | 8 +++++++- 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_com= mon.c index 91b0b4de475f..09a64812cd84 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -2119,10 +2119,12 @@ static void b53_arl_search_read_25(struct b53_devic= e *dev, u8 idx, struct b53_arl_entry *ent) { u64 mac_vid; + u8 ext; =20 + b53_read8(dev, B53_ARLIO_PAGE, B53_ARL_SRCH_RSLT_EXT_25, &ext); b53_read64(dev, B53_ARLIO_PAGE, B53_ARL_SRCH_RSTL_0_MACVID_25, &mac_vid); - b53_arl_to_entry_25(ent, mac_vid); + b53_arl_search_to_entry_25(ent, mac_vid, ext); } =20 static void b53_arl_search_read_89(struct b53_device *dev, u8 idx, diff --git a/drivers/net/dsa/b53/b53_priv.h b/drivers/net/dsa/b53/b53_priv.h index bd821d60ac90..24df3ab64395 100644 --- a/drivers/net/dsa/b53/b53_priv.h +++ b/drivers/net/dsa/b53/b53_priv.h @@ -348,8 +348,8 @@ static inline void b53_arl_to_entry_25(struct b53_arl_e= ntry *ent, ent->is_age =3D !!(mac_vid & ARLTBL_AGE_25); ent->is_static =3D !!(mac_vid & ARLTBL_STATIC_25); u64_to_ether_addr(mac_vid, ent->mac); - ent->port =3D (mac_vid >> ARLTBL_DATA_PORT_ID_S_25) & - ARLTBL_DATA_PORT_ID_MASK_25; + ent->port =3D (mac_vid & ARLTBL_DATA_PORT_ID_MASK_25) >> + ARLTBL_DATA_PORT_ID_S_25; if (!is_multicast_ether_addr(ent->mac) && ent->port =3D=3D B53_CPU_PORT) ent->port =3D B53_CPU_PORT_25; ent->vid =3D (mac_vid >> ARLTBL_VID_S_65) & ARLTBL_VID_MASK_25; @@ -388,8 +388,8 @@ static inline void b53_arl_from_entry_25(u64 *mac_vid, if (!is_multicast_ether_addr(ent->mac) && ent->port =3D=3D B53_CPU_PORT_2= 5) *mac_vid |=3D (u64)B53_CPU_PORT << ARLTBL_DATA_PORT_ID_S_25; else - *mac_vid |=3D (u64)(ent->port & ARLTBL_DATA_PORT_ID_MASK_25) << - ARLTBL_DATA_PORT_ID_S_25; + *mac_vid |=3D ((u64)ent->port << ARLTBL_DATA_PORT_ID_S_25) & + ARLTBL_DATA_PORT_ID_MASK_25; *mac_vid |=3D (u64)(ent->vid & ARLTBL_VID_MASK_25) << ARLTBL_VID_S_65; if (ent->is_valid) @@ -414,6 +414,23 @@ static inline void b53_arl_from_entry_89(u64 *mac_vid,= u32 *fwd_entry, *fwd_entry |=3D ARLTBL_AGE_89; } =20 +static inline void b53_arl_search_to_entry_25(struct b53_arl_entry *ent, + u64 mac_vid, u8 ext) +{ + memset(ent, 0, sizeof(*ent)); + ent->is_valid =3D !!(mac_vid & ARLTBL_VALID_25); + ent->is_age =3D !!(mac_vid & ARLTBL_AGE_25); + ent->is_static =3D !!(mac_vid & ARLTBL_STATIC_25); + u64_to_ether_addr(mac_vid, ent->mac); + ent->vid =3D (mac_vid >> ARLTBL_VID_S_65) & ARLTBL_VID_MASK_25; + ent->port =3D (mac_vid & ARL_SRCH_RSLT_PORT_ID_MASK_25) >> + ARL_SRCH_RSLT_PORT_ID_S_25; + if (is_multicast_ether_addr(ent->mac) && (ext & ARL_SRCH_RSLT_EXT_MC_MII)) + ent->port |=3D BIT(B53_CPU_PORT_25); + else if (!is_multicast_ether_addr(ent->mac) && ent->port =3D=3D B53_CPU_P= ORT) + ent->port =3D B53_CPU_PORT_25; +} + static inline void b53_arl_search_to_entry_63xx(struct b53_arl_entry *ent, u64 mac_vid, u16 fwd_entry) { diff --git a/drivers/net/dsa/b53/b53_regs.h b/drivers/net/dsa/b53/b53_regs.h index 505979102ed5..54b1016eb7eb 100644 --- a/drivers/net/dsa/b53/b53_regs.h +++ b/drivers/net/dsa/b53/b53_regs.h @@ -332,7 +332,7 @@ #define ARLTBL_VID_MASK_25 0xff #define ARLTBL_VID_MASK 0xfff #define ARLTBL_DATA_PORT_ID_S_25 48 -#define ARLTBL_DATA_PORT_ID_MASK_25 0xf +#define ARLTBL_DATA_PORT_ID_MASK_25 GENMASK_ULL(53, 48) #define ARLTBL_VID_S_65 53 #define ARLTBL_AGE_25 BIT_ULL(61) #define ARLTBL_STATIC_25 BIT_ULL(62) @@ -378,6 +378,12 @@ =20 /* Single register search result on 5325/5365 */ #define B53_ARL_SRCH_RSTL_0_MACVID_25 0x24 +#define ARL_SRCH_RSLT_PORT_ID_S_25 48 +#define ARL_SRCH_RSLT_PORT_ID_MASK_25 GENMASK_ULL(52, 48) + +/* BCM5325/5365 Search result extend register (8 bit) */ +#define B53_ARL_SRCH_RSLT_EXT_25 0x2c +#define ARL_SRCH_RSLT_EXT_MC_MII BIT(2) =20 /* ARL Search Data Result (32 bit) */ #define B53_ARL_SRCH_RSTL_0 0x68 --=20 2.43.0 From nobody Tue Dec 2 00:02:28 2025 Received: from mail-ed1-f44.google.com (mail-ed1-f44.google.com [209.85.208.44]) (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 9C1982D9EF3 for ; Tue, 25 Nov 2025 07:52:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764057132; cv=none; b=BNUQlwWDpcHnoM68UpHGi+swWAbS81AlVRS9IyT9dWKZLZaBdUGiTE9pWwfA6gqVd3AFp87x3XxUzygBBQPek1kC7M884086aAitkoJxO1bwzvkEpK9nNnsaPRxmkY/tKAqXCRG46GhYWe9+cyOPXJd/WIfBmZSzoPLdIgoUTL8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764057132; c=relaxed/simple; bh=q1IKP+j9PFBXI9VECNtuhPrYa6qPbjLTzChyrHb6Ui0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WtcG18Szo2GYjrNwlEBIKoZbEm7wubGaz1EZbv1iFqyVv2DUyKy4wiRASHUAVyBcw5KfZU2VkNheDSM+ReBvvYl0gJRH2OKjWDHzO4bqEbSKbM9t23Z20s7xN3CrSq/JTvFa6VAk18/UxT+y7RlBKb6K1yPprqZoWOrIY4F5gOs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=KvcvSCk5; arc=none smtp.client-ip=209.85.208.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="KvcvSCk5" Received: by mail-ed1-f44.google.com with SMTP id 4fb4d7f45d1cf-6419b7b4b80so7380798a12.2 for ; Mon, 24 Nov 2025 23:52:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764057129; x=1764661929; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0V+iOBjztOFiOh8XvFtucaeDeOd2zLS6YUjWGQu28Ko=; b=KvcvSCk58BkXcnjQeIhGGClq3+qDZS94+R/LL128FtdGmb0Zavs7Dj5pip5jLzGEgf huNDNLCbWfFmyKg4PQujH2l1wSfUoeWe1q46lN2oqTBfFO/Ibrbpk0+LGlZkcOI9uWto 8LKBeMgFEvvGohslgLzCJYgQTV6pMwf5A8OSTA0a4yjKNqjAdlje3uBTHDKz0cxNRreb njm1s25/bRssJRVl/3v7wvxgjyyYc5lX1OVHYFMsfeQKzNGUgCM0lmUFeMeiHZFBiqAD H6OBh89larz/Oau4QqDjo1mjro1OU6nxfzVdtSLAsmEdAY7D3tH8RmI/GWdiNSkt7lbX hJBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764057129; x=1764661929; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=0V+iOBjztOFiOh8XvFtucaeDeOd2zLS6YUjWGQu28Ko=; b=HkF9xW5fzth97VeXGINrzL7iwqDQnXymDGxZeeWzs5hKnCUN3KWFUY0oGc+TDNmgub 47m9Ss8MEocb7LlaLbSBSxrEPOvXqDyHtf8DirVexlQorsBHbFxzRlD8QeD0RRjQtIkS d2YqoJca5lpANfbwSJ0q2ovipeLpwIBXhvQ0Q2PiXZFTY1WMEqvbf5G9+8LvKSbYtQ7e HbjMZ+zqGMNQ9jjQ7QcOMfWvRI9u/vo12BtREsmoIg+RAPEZ4wylfO152CNikcpQgvCw m872kt/Qmhudpo+G7kTL8Vp2oKKsv6StGFKsVQI6BdeJfFws1UcHWBoEOH/X7L1fqGzW 43tw== X-Forwarded-Encrypted: i=1; AJvYcCXm+3oyaQUbXwvPdQK5umuvHzCaFInHRV6mK4tP1kA+akuoswy+M2r675oQfQcbdGIx7ITgwWR/LY7vNAY=@vger.kernel.org X-Gm-Message-State: AOJu0Yzs5zSHaYQJfBI9keWh1GzdXs+Z63xEOqhk0BASgVzv/iBOO94B JtTUOr+o921NowgIkfYgpEfcmzR4XzHROsNygUWP+oUxTWMcXiQ6URhJ X-Gm-Gg: ASbGncswdP+hZvyHkN4bga3ZuJlG8Dc4pE8ddZM1dakghwZl2S/F25RY/iXqmhaOf6M XT7L/tLUqpxuLIQUzrmjayUVpwGyE0hYzSPo6AM6rwEF+HZ3GhpETPBax1uPogJ0MqLeorqoAdI H6L0hv8malMmsKdlRleNuQ4+YS4e4JNpD2fHnid9pGO4mnhKPz3fiHoQa67Czb7Prs1Xin0yy4O XSaqjPCivduWtbvIALRaymvIWeqF9YBk0H5ywd7sVMD1rmm/yE6tGafQ0J91Ye4TB2jDjjt56XQ GqENykFu5RTwri8+toWZo+BWCW7zj3te5oGoBK+izDRX6VWkggXSKko8N/uMCyCo3gk9NJUylkW whBRkN2yL9ZSKDQHSv+TUIZQKZOfMpxUL3JVwG3y7avxkX7jg8+TFkq1ggMpLEGF2/kNOTodmb7 c8zWAed5tYNB3kvKS+gnZTux3wlRhxvodqZD4j01/RkqAVBJcUWzrtDM/twxEqlFJiyGjylaSNS xVoug== X-Google-Smtp-Source: AGHT+IFk77GelQTFcD92LcQnmuvfhCPsowRD//MZHMAJK96B1Vx8M3nO5H9fm/u7Xvl37U98LQQeqQ== X-Received: by 2002:a05:6402:2111:b0:640:a9fb:3464 with SMTP id 4fb4d7f45d1cf-645544421efmr12259245a12.7.1764057128901; Mon, 24 Nov 2025 23:52:08 -0800 (PST) Received: from localhost (dslb-002-205-018-238.002.205.pools.vodafone-ip.de. [2.205.18.238]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-645363b62cesm14126718a12.13.2025.11.24.23.52.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Nov 2025 23:52:08 -0800 (PST) From: Jonas Gorski To: Florian Fainelli , Andrew Lunn , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Cc: Florian Fainelli , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 6/7] net: dsa: b53: fix BCM5325/65 ARL entry VIDs Date: Tue, 25 Nov 2025 08:51:49 +0100 Message-ID: <20251125075150.13879-7-jonas.gorski@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251125075150.13879-1-jonas.gorski@gmail.com> References: <20251125075150.13879-1-jonas.gorski@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" BCM5325/65's ARL entry registers do not contain the VID, only the search result register does. ARL entries have a separate VID entry register for the index into the VLAN table. So make ARL entry accessors use the VID entry registers instead, and move the VLAN ID field definition to the search register definition. Fixes: c45655386e53 ("net: dsa: b53: add support for FDB operations on 5325= /5365") Signed-off-by: Jonas Gorski --- drivers/net/dsa/b53/b53_common.c | 9 +++++++-- drivers/net/dsa/b53/b53_priv.h | 12 ++++++------ drivers/net/dsa/b53/b53_regs.h | 7 +++++-- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_com= mon.c index 09a64812cd84..ac995f36ed95 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -1853,19 +1853,24 @@ static int b53_arl_rw_op(struct b53_device *dev, un= signed int op) static void b53_arl_read_entry_25(struct b53_device *dev, struct b53_arl_entry *ent, u8 idx) { + u8 vid_entry; u64 mac_vid; =20 + b53_read8(dev, B53_ARLIO_PAGE, B53_ARLTBL_VID_ENTRY_25(idx), + &vid_entry); b53_read64(dev, B53_ARLIO_PAGE, B53_ARLTBL_MAC_VID_ENTRY(idx), &mac_vid); - b53_arl_to_entry_25(ent, mac_vid); + b53_arl_to_entry_25(ent, mac_vid, vid_entry); } =20 static void b53_arl_write_entry_25(struct b53_device *dev, const struct b53_arl_entry *ent, u8 idx) { + u8 vid_entry; u64 mac_vid; =20 - b53_arl_from_entry_25(&mac_vid, ent); + b53_arl_from_entry_25(&mac_vid, &vid_entry, ent); + b53_write8(dev, B53_ARLIO_PAGE, B53_ARLTBL_VID_ENTRY_25(idx), vid_entry); b53_write64(dev, B53_ARLIO_PAGE, B53_ARLTBL_MAC_VID_ENTRY(idx), mac_vid); } diff --git a/drivers/net/dsa/b53/b53_priv.h b/drivers/net/dsa/b53/b53_priv.h index 24df3ab64395..ea99e4d322bd 100644 --- a/drivers/net/dsa/b53/b53_priv.h +++ b/drivers/net/dsa/b53/b53_priv.h @@ -341,7 +341,7 @@ static inline void b53_arl_to_entry(struct b53_arl_entr= y *ent, } =20 static inline void b53_arl_to_entry_25(struct b53_arl_entry *ent, - u64 mac_vid) + u64 mac_vid, u8 vid_entry) { memset(ent, 0, sizeof(*ent)); ent->is_valid =3D !!(mac_vid & ARLTBL_VALID_25); @@ -352,7 +352,7 @@ static inline void b53_arl_to_entry_25(struct b53_arl_e= ntry *ent, ARLTBL_DATA_PORT_ID_S_25; if (!is_multicast_ether_addr(ent->mac) && ent->port =3D=3D B53_CPU_PORT) ent->port =3D B53_CPU_PORT_25; - ent->vid =3D (mac_vid >> ARLTBL_VID_S_65) & ARLTBL_VID_MASK_25; + ent->vid =3D vid_entry; } =20 static inline void b53_arl_to_entry_89(struct b53_arl_entry *ent, @@ -381,7 +381,7 @@ static inline void b53_arl_from_entry(u64 *mac_vid, u32= *fwd_entry, *fwd_entry |=3D ARLTBL_AGE; } =20 -static inline void b53_arl_from_entry_25(u64 *mac_vid, +static inline void b53_arl_from_entry_25(u64 *mac_vid, u8 *vid_entry, const struct b53_arl_entry *ent) { *mac_vid =3D ether_addr_to_u64(ent->mac); @@ -390,14 +390,13 @@ static inline void b53_arl_from_entry_25(u64 *mac_vid, else *mac_vid |=3D ((u64)ent->port << ARLTBL_DATA_PORT_ID_S_25) & ARLTBL_DATA_PORT_ID_MASK_25; - *mac_vid |=3D (u64)(ent->vid & ARLTBL_VID_MASK_25) << - ARLTBL_VID_S_65; if (ent->is_valid) *mac_vid |=3D ARLTBL_VALID_25; if (ent->is_static) *mac_vid |=3D ARLTBL_STATIC_25; if (ent->is_age) *mac_vid |=3D ARLTBL_AGE_25; + *vid_entry =3D ent->vid; } =20 static inline void b53_arl_from_entry_89(u64 *mac_vid, u32 *fwd_entry, @@ -422,7 +421,8 @@ static inline void b53_arl_search_to_entry_25(struct b5= 3_arl_entry *ent, ent->is_age =3D !!(mac_vid & ARLTBL_AGE_25); ent->is_static =3D !!(mac_vid & ARLTBL_STATIC_25); u64_to_ether_addr(mac_vid, ent->mac); - ent->vid =3D (mac_vid >> ARLTBL_VID_S_65) & ARLTBL_VID_MASK_25; + ent->vid =3D (mac_vid & ARL_SRCH_RSLT_VID_MASK_25) >> + ARL_SRCH_RSLT_VID_S_25; ent->port =3D (mac_vid & ARL_SRCH_RSLT_PORT_ID_MASK_25) >> ARL_SRCH_RSLT_PORT_ID_S_25; if (is_multicast_ether_addr(ent->mac) && (ext & ARL_SRCH_RSLT_EXT_MC_MII)) diff --git a/drivers/net/dsa/b53/b53_regs.h b/drivers/net/dsa/b53/b53_regs.h index 54b1016eb7eb..54a278db67c9 100644 --- a/drivers/net/dsa/b53/b53_regs.h +++ b/drivers/net/dsa/b53/b53_regs.h @@ -329,11 +329,9 @@ #define B53_ARLTBL_MAC_VID_ENTRY(n) ((0x10 * (n)) + 0x10) #define ARLTBL_MAC_MASK 0xffffffffffffULL #define ARLTBL_VID_S 48 -#define ARLTBL_VID_MASK_25 0xff #define ARLTBL_VID_MASK 0xfff #define ARLTBL_DATA_PORT_ID_S_25 48 #define ARLTBL_DATA_PORT_ID_MASK_25 GENMASK_ULL(53, 48) -#define ARLTBL_VID_S_65 53 #define ARLTBL_AGE_25 BIT_ULL(61) #define ARLTBL_STATIC_25 BIT_ULL(62) #define ARLTBL_VALID_25 BIT_ULL(63) @@ -353,6 +351,9 @@ #define ARLTBL_STATIC_89 BIT(14) #define ARLTBL_VALID_89 BIT(15) =20 +/* BCM5325/BCM565 ARL Table VID Entry N Registers (8 bit) */ +#define B53_ARLTBL_VID_ENTRY_25(n) ((0x2 * (n)) + 0x30) + /* Maximum number of bin entries in the ARL for all switches */ #define B53_ARLTBL_MAX_BIN_ENTRIES 4 =20 @@ -380,6 +381,8 @@ #define B53_ARL_SRCH_RSTL_0_MACVID_25 0x24 #define ARL_SRCH_RSLT_PORT_ID_S_25 48 #define ARL_SRCH_RSLT_PORT_ID_MASK_25 GENMASK_ULL(52, 48) +#define ARL_SRCH_RSLT_VID_S_25 53 +#define ARL_SRCH_RSLT_VID_MASK_25 GENMASK_ULL(60, 53) =20 /* BCM5325/5365 Search result extend register (8 bit) */ #define B53_ARL_SRCH_RSLT_EXT_25 0x2c --=20 2.43.0 From nobody Tue Dec 2 00:02:28 2025 Received: from mail-ej1-f41.google.com (mail-ej1-f41.google.com [209.85.218.41]) (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 CDCE62DC338 for ; Tue, 25 Nov 2025 07:52:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764057133; cv=none; b=rETnM8BpIOm4QkhoKF5DaElPQHdVimkvNUPsPxY8sjb9kQBIxyvE/E1JcqyYIp+Tihha+LkNnH7AGZeQZDv84s48QpkdCmkadp2du54H7Vd1gbaFDgOe4b8aTEW0gP5zvg+8xYy1qT1WBemQL/qMUJMo67LX4/Gu17hL7OjH1TQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764057133; c=relaxed/simple; bh=2IDfTgVRfPVoxOoroR4XS8Qg2cGhPJ/8dpwLu49CnJk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pv+kCQWvVd+Zj/FVBIINRdzIF3TdL93hzS60LOOn3o1LEzsvs1SF0UZIM2ndMrIo/zTBYnpFgR8hj9lWfpUF0fO0pPIOauP+PJ7UkcTh5UDmVaH+IUdtr2pHGLkV9DMQBoFh9xF/wY4oPhXvumQm2GAKM2ThP8KM91HPjecHCfw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=HMjOlD5l; arc=none smtp.client-ip=209.85.218.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="HMjOlD5l" Received: by mail-ej1-f41.google.com with SMTP id a640c23a62f3a-b735ce67d1dso806086366b.3 for ; Mon, 24 Nov 2025 23:52:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764057130; x=1764661930; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=HYHFwdbxRLbygb/fCHFJ4ddI34Qtby7k1kfsMle3SjE=; b=HMjOlD5liIIhpq1k6sAlAjUt07FJxtc1fMQ4s5Cc+yeZkvgr3GAstxp9flCSJGMvP3 3RMxhgc/cYXCQFRVFuZHXc2wSmZjjEvPvOAYc5Gbb3rWKf7CGat6nOyjoV01xPu/XF4t wocjlP8lEQcC7u/dpJI8LAO64/takx4w/1mgr21mCpMvb4A3KZSOzZMY9ZMsYzk7UmjY 8kscpyhvEdohOfOlEtvqLGZYljxgL3nr62g/EVZOxJJm8+7QyljReW4BVqhKXqtRRKx/ giFmWVuQKNABXGNBs7fKDzTcyCWTZouN4cgJcpU5KukuRLxlE16wrkM8//J+8GjZR3Lc RX/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764057130; x=1764661930; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=HYHFwdbxRLbygb/fCHFJ4ddI34Qtby7k1kfsMle3SjE=; b=smSz0xKA85QtwLzwSVkyVgDdnqRvOhbOB+zkbxBAGVk8yFCljyELViEo1HL0uLw2NG 3gUaVUxxabF4TAdx8ya5dUBIeklgH3B6t5xUadCt8ijX6HD5Fk5sykjhqZEt5uKfcF2U iQeaAcC/b4OMo7u621twdz2R9dW29qFIlSVP1O6nxeBZ7GQxHQ7ljhOPW7WcJQhyt+VR 1g7KDdRhYXxcNZVIY4rc9MLQNml8jcCvPeoGNXjtYM/NwlI7UDlihNNUYFc7mW7WVxvG 6tK8aLpqyyF/BxRBIIhfYstYfTGjqcr4YtY1tI4E4eSzRgfey9oWXIRGtuDD/ScyCVDa ZuJA== X-Forwarded-Encrypted: i=1; AJvYcCUK4ID48Vu4hyU2CkiIE/rLgPGO5TpBcEA7qX4ZiJV9TtlBHNkS4lEhuU+TctBPX6WOb1FYt9V1Gt5tbqI=@vger.kernel.org X-Gm-Message-State: AOJu0YxUNcCmMES5fsmB84azfKJxpqlyirmyRYKRUE63e5Zrjgl/Zfoh h9iKpf624CQOAb6YDToTW7Gf3+3xJzf0WqfieSYH8eSvYVKUI2UJNSqhK9X/Xww/ X-Gm-Gg: ASbGncuZGAPhQ2caJagdYJyJ8d+nt7Y1K9jPIAUcgeBBaI4fqGW4+hfUfpWLuPCovpI ufws2w4dz1t8Pg8tpavp+u7fdhHUFLh880dvWPe3K1278gCPK+GfPpfaiOGy7q1pKwk+dRoCRwv bIA2yMW7bSmO02G5bgsKYO2AUbE4d+gBE0E91f3kdA6pyViylnV9wNWI3NqWWXIwlbu2z7Pr9OR IVpnRspyze1RUpIzZhl5VMtCQl3XhJ96dUMBKESakOrOG2B6pjGk4Lsk/XoDO8YblBFtKfr1s9a 9tr+ImqFWTSo/9zZ+oaTqlm26h3GDl7VMGKWon0PtvV2oVUrmYnE/k6YtaQQ03GRicaFrFgnI+b 0oqR7kZRgLUePDlT9OLVOjw+VOE9Nbj/aiehiT4O9paVz9ploTiqFDYoE1PPLv3q5r3i2xc1wOI ygAKvuonPtzSKy+DvZBd7JLCWPKaExEXaHQgDX2u2Nl61cShFpiJQb3xi3G5VhumVojmA= X-Google-Smtp-Source: AGHT+IFdle32TRioESDmWF/xcaCqK6QYh9FTiqmxWzVBB3FON2HCO36Ge3caO0vVpXHNG1vPejD/rw== X-Received: by 2002:a17:907:97d1:b0:b76:4010:a890 with SMTP id a640c23a62f3a-b76c550b652mr177846666b.31.1764057129980; Mon, 24 Nov 2025 23:52:09 -0800 (PST) Received: from localhost (dslb-002-205-018-238.002.205.pools.vodafone-ip.de. [2.205.18.238]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b7654cdd5ebsm1533132266b.14.2025.11.24.23.52.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Nov 2025 23:52:09 -0800 (PST) From: Jonas Gorski To: Florian Fainelli , Andrew Lunn , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Cc: Florian Fainelli , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 7/7] net: dsa: b53: allow VID 0 for BCM5325/65 Date: Tue, 25 Nov 2025 08:51:50 +0100 Message-ID: <20251125075150.13879-8-jonas.gorski@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251125075150.13879-1-jonas.gorski@gmail.com> References: <20251125075150.13879-1-jonas.gorski@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Now that writing ARL entries works properly, we can actually use VID 0 as the default untagged VLAN for BCM5325 and BCM5365 as well, so use 0 as default PVID always. Signed-off-by: Jonas Gorski Tested-by: =C3=81lvaro Fern=C3=A1ndez Rojas --- drivers/net/dsa/b53/b53_common.c | 49 +++++++++++--------------------- 1 file changed, 17 insertions(+), 32 deletions(-) diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_com= mon.c index ac995f36ed95..4eff64204897 100644 --- a/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c @@ -870,14 +870,6 @@ static void b53_enable_stp(struct b53_device *dev) b53_write8(dev, B53_MGMT_PAGE, B53_GLOBAL_CONFIG, gc); } =20 -static u16 b53_default_pvid(struct b53_device *dev) -{ - if (is5325(dev) || is5365(dev)) - return 1; - else - return 0; -} - static bool b53_vlan_port_needs_forced_tagged(struct dsa_switch *ds, int p= ort) { struct b53_device *dev =3D ds->priv; @@ -906,14 +898,12 @@ int b53_configure_vlan(struct dsa_switch *ds) struct b53_device *dev =3D ds->priv; struct b53_vlan vl =3D { 0 }; struct b53_vlan *v; - int i, def_vid; u16 vid; - - def_vid =3D b53_default_pvid(dev); + int i; =20 /* clear all vlan entries */ if (is5325(dev) || is5365(dev)) { - for (i =3D def_vid; i < dev->num_vlans; i++) + for (i =3D 0; i < dev->num_vlans; i++) b53_set_vlan_entry(dev, i, &vl); } else { b53_do_vlan_op(dev, VTA_CMD_CLEAR); @@ -927,7 +917,7 @@ int b53_configure_vlan(struct dsa_switch *ds) * entry. Do this only when the tagging protocol is not * DSA_TAG_PROTO_NONE */ - v =3D &dev->vlans[def_vid]; + v =3D &dev->vlans[0]; b53_for_each_port(dev, i) { if (!b53_vlan_port_may_join_untagged(ds, i)) continue; @@ -935,16 +925,15 @@ int b53_configure_vlan(struct dsa_switch *ds) vl.members |=3D BIT(i); if (!b53_vlan_port_needs_forced_tagged(ds, i)) vl.untag =3D vl.members; - b53_write16(dev, B53_VLAN_PAGE, B53_VLAN_PORT_DEF_TAG(i), - def_vid); + b53_write16(dev, B53_VLAN_PAGE, B53_VLAN_PORT_DEF_TAG(i), 0); } - b53_set_vlan_entry(dev, def_vid, &vl); + b53_set_vlan_entry(dev, 0, &vl); =20 if (dev->vlan_filtering) { /* Upon initial call we have not set-up any VLANs, but upon * system resume, we need to restore all VLAN entries. */ - for (vid =3D def_vid + 1; vid < dev->num_vlans; vid++) { + for (vid =3D 1; vid < dev->num_vlans; vid++) { v =3D &dev->vlans[vid]; =20 if (!v->members) @@ -1280,7 +1269,6 @@ static int b53_setup(struct dsa_switch *ds) struct b53_device *dev =3D ds->priv; struct b53_vlan *vl; unsigned int port; - u16 pvid; int ret; =20 /* Request bridge PVID untagged when DSA_TAG_PROTO_NONE is set @@ -1310,8 +1298,7 @@ static int b53_setup(struct dsa_switch *ds) } =20 /* setup default vlan for filtering mode */ - pvid =3D b53_default_pvid(dev); - vl =3D &dev->vlans[pvid]; + vl =3D &dev->vlans[0]; b53_for_each_port(dev, port) { vl->members |=3D BIT(port); if (!b53_vlan_port_needs_forced_tagged(ds, port)) @@ -1740,7 +1727,7 @@ int b53_vlan_add(struct dsa_switch *ds, int port, if (pvid) new_pvid =3D vlan->vid; else if (!pvid && vlan->vid =3D=3D old_pvid) - new_pvid =3D b53_default_pvid(dev); + new_pvid =3D 0; else new_pvid =3D old_pvid; dev->ports[port].pvid =3D new_pvid; @@ -1790,7 +1777,7 @@ int b53_vlan_del(struct dsa_switch *ds, int port, vl->members &=3D ~BIT(port); =20 if (pvid =3D=3D vlan->vid) - pvid =3D b53_default_pvid(dev); + pvid =3D 0; dev->ports[port].pvid =3D pvid; =20 if (untagged && !b53_vlan_port_needs_forced_tagged(ds, port)) @@ -2269,7 +2256,7 @@ int b53_br_join(struct dsa_switch *ds, int port, stru= ct dsa_bridge bridge, struct b53_device *dev =3D ds->priv; struct b53_vlan *vl; s8 cpu_port =3D dsa_to_port(ds, port)->cpu_dp->index; - u16 pvlan, reg, pvid; + u16 pvlan, reg; unsigned int i; =20 /* On 7278, port 7 which connects to the ASP should only receive @@ -2278,8 +2265,7 @@ int b53_br_join(struct dsa_switch *ds, int port, stru= ct dsa_bridge bridge, if (dev->chip_id =3D=3D BCM7278_DEVICE_ID && port =3D=3D 7) return -EINVAL; =20 - pvid =3D b53_default_pvid(dev); - vl =3D &dev->vlans[pvid]; + vl =3D &dev->vlans[0]; =20 if (dev->vlan_filtering) { /* Make this port leave the all VLANs join since we will have @@ -2295,9 +2281,9 @@ int b53_br_join(struct dsa_switch *ds, int port, stru= ct dsa_bridge bridge, reg); } =20 - b53_get_vlan_entry(dev, pvid, vl); + b53_get_vlan_entry(dev, 0, vl); vl->members &=3D ~BIT(port); - b53_set_vlan_entry(dev, pvid, vl); + b53_set_vlan_entry(dev, 0, vl); } =20 b53_read16(dev, B53_PVLAN_PAGE, B53_PVLAN_PORT_MASK(port), &pvlan); @@ -2336,7 +2322,7 @@ void b53_br_leave(struct dsa_switch *ds, int port, st= ruct dsa_bridge bridge) struct b53_vlan *vl; s8 cpu_port =3D dsa_to_port(ds, port)->cpu_dp->index; unsigned int i; - u16 pvlan, reg, pvid; + u16 pvlan, reg; =20 b53_read16(dev, B53_PVLAN_PAGE, B53_PVLAN_PORT_MASK(port), &pvlan); =20 @@ -2361,8 +2347,7 @@ void b53_br_leave(struct dsa_switch *ds, int port, st= ruct dsa_bridge bridge) b53_write16(dev, B53_PVLAN_PAGE, B53_PVLAN_PORT_MASK(port), pvlan); dev->ports[port].vlan_ctl_mask =3D pvlan; =20 - pvid =3D b53_default_pvid(dev); - vl =3D &dev->vlans[pvid]; + vl =3D &dev->vlans[0]; =20 if (dev->vlan_filtering) { /* Make this port join all VLANs without VLAN entries */ @@ -2374,9 +2359,9 @@ void b53_br_leave(struct dsa_switch *ds, int port, st= ruct dsa_bridge bridge) b53_write16(dev, B53_VLAN_PAGE, B53_JOIN_ALL_VLAN_EN, reg); } =20 - b53_get_vlan_entry(dev, pvid, vl); + b53_get_vlan_entry(dev, 0, vl); vl->members |=3D BIT(port); - b53_set_vlan_entry(dev, pvid, vl); + b53_set_vlan_entry(dev, 0, vl); } } EXPORT_SYMBOL(b53_br_leave); --=20 2.43.0