[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240618163111.5091108a@wsk>
Date: Tue, 18 Jun 2024 16:31:11 +0200
From: Lukasz Majewski <lukma@...x.de>
To: Dan Carpenter <dan.carpenter@...aro.org>
Cc: Vladimir Oltean <olteanv@...il.com>, Jakub Kicinski <kuba@...nel.org>,
netdev@...r.kernel.org, Paolo Abeni <pabeni@...hat.com>, Eric Dumazet
<edumazet@...gle.com>, "David S. Miller" <davem@...emloft.net>, Oleksij
Rempel <o.rempel@...gutronix.de>, Tristram.Ha@...rochip.com, Sebastian
Andrzej Siewior <bigeasy@...utronix.de>, Simon Horman <horms@...nel.org>,
"Ricardo B. Marliere" <ricardo@...liere.net>, Casper Andersson
<casper.casan@...il.com>, linux-kernel@...r.kernel.org, Woojung Huh
<woojung.huh@...rochip.com>, UNGLinuxDriver@...rochip.com, Andrew Lunn
<andrew@...n.ch>
Subject: Re: [PATCH v1 net-next] net: dsa: Allow only up to two HSR HW
offloaded ports for KSZ9477
On Tue, 18 Jun 2024 16:42:51 +0300
Dan Carpenter <dan.carpenter@...aro.org> wrote:
> On Tue, Jun 18, 2024 at 03:04:33PM +0200, Lukasz Majewski wrote:
> > The KSZ9477 allows HSR in-HW offloading for any of two selected
> > ports. This patch adds check if one tries to use more than two
> > ports with HSR offloading enabled.
> >
> > Signed-off-by: Lukasz Majewski <lukma@...x.de>
>
> Is this a bug fix? What is the impact for the user? Fixes tag? Add
> this information to the commit message when you resend.
>
> > ---
> > drivers/net/dsa/microchip/ksz_common.c | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/drivers/net/dsa/microchip/ksz_common.c
> > b/drivers/net/dsa/microchip/ksz_common.c index
> > 2818e24e2a51..0d68f0a5bf19 100644 ---
> > a/drivers/net/dsa/microchip/ksz_common.c +++
> > b/drivers/net/dsa/microchip/ksz_common.c @@ -3913,6 +3913,9 @@
> > static int ksz_hsr_join(struct dsa_switch *ds, int port, struct
> > net_device *hsr, if (ret) return ret;
> >
> > + if (dev->chip_id == KSZ9477_CHIP_ID &&
> > hweight8(dev->hsr_ports) > 1)
> > + return -EOPNOTSUPP;
>
> Put this condition before the ksz_switch_macaddr_get(). Otherwise
> we'd need to do a ksz_switch_macaddr_put().
>
> If dev->chip_id != KSZ9477_CHIP_ID then we would have already
> returned. Really, that should be the first check in this function.
> The hsr_get_version() should be moved to right before we use the
> version. (But that's a separate issue, not related to this patch so
> ignore it).
>
> So do something like this but write a better error message.
Ok.
>
> regards,
> dan carpenter
>
> diff --git a/drivers/net/dsa/microchip/ksz_common.c
> b/drivers/net/dsa/microchip/ksz_common.c index
> 2818e24e2a51..181e81af3a78 100644 ---
> a/drivers/net/dsa/microchip/ksz_common.c +++
> b/drivers/net/dsa/microchip/ksz_common.c @@ -3906,6 +3906,11 @@
> static int ksz_hsr_join(struct dsa_switch *ds, int port, struct
> net_device *hsr, return -EOPNOTSUPP; }
>
> + if (hweight8(dev->hsr_ports) > 1) {
> + NL_SET_ERR_MSG_MOD(extack, "Cannot offload more than
> two ports (in use=0x%x)", dev->hsr_ports);
> + return -EOPNOTSUPP;
> + }
> +
> /* Self MAC address filtering, to avoid frames traversing
> * the HSR ring more than once.
> */
>
>
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@...x.de
Content of type "application/pgp-signature" skipped
Powered by blists - more mailing lists