1 From 800728abd9f83bda4de62a30ce62a8b41c242020 Mon Sep 17 00:00:00 2001
2 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
3 Date: Sat, 14 Jun 2025 09:59:55 +0200
4 Subject: [PATCH] net: dsa: b53: prevent DIS_LEARNING access on BCM5325
6 Content-Type: text/plain; charset=UTF-8
7 Content-Transfer-Encoding: 8bit
9 BCM5325 doesn't implement DIS_LEARNING register so we should avoid reading
12 Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
13 Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
14 Link: https://patch.msgid.link/20250614080000.1884236-10-noltari@gmail.com
15 Signed-off-by: Jakub Kicinski <kuba@kernel.org>
17 drivers/net/dsa/b53/b53_common.c | 11 ++++++++++-
18 1 file changed, 10 insertions(+), 1 deletion(-)
20 --- a/drivers/net/dsa/b53/b53_common.c
21 +++ b/drivers/net/dsa/b53/b53_common.c
22 @@ -593,6 +593,9 @@ static void b53_port_set_learning(struct
29 b53_read16(dev, B53_CTRL_PAGE, B53_DIS_LEARNING, ®);
32 @@ -2247,7 +2250,13 @@ int b53_br_flags_pre(struct dsa_switch *
33 struct switchdev_brport_flags flags,
34 struct netlink_ext_ack *extack)
36 - if (flags.mask & ~(BR_FLOOD | BR_MCAST_FLOOD | BR_LEARNING))
37 + struct b53_device *dev = ds->priv;
38 + unsigned long mask = (BR_FLOOD | BR_MCAST_FLOOD);
41 + mask |= BR_LEARNING;
43 + if (flags.mask & ~mask)