[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230625145445.ialdexs2wxu6lu73@skbuf>
Date: Sun, 25 Jun 2023 17:54:45 +0300
From: Vladimir Oltean <olteanv@...il.com>
To: Pawel Dembicki <paweldembicki@...il.com>
Cc: netdev@...r.kernel.org, Linus Walleij <linus.walleij@...aro.org>,
Andrew Lunn <andrew@...n.ch>,
Florian Fainelli <f.fainelli@...il.com>,
"David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH net-next v2 7/7] net: dsa: vsc73xx: fix MTU configuration
On Sun, Jun 25, 2023 at 01:53:42PM +0200, Pawel Dembicki wrote:
> Switch in MAXLEN register store maximum size of data frame.
> MTU size is 18 bytes smaller than frame size.
>
> Current settings causes problems with packet forwarding.
> This patch fix MTU settings to proper values.
>
> Fixes: fb77ffc6ec86 ("net: dsa: vsc73xx: make the MTU configurable")
> Reviewed-by: Linus Walleij <linus.walleij@...aro.org>
> Signed-off-by: Pawel Dembicki <paweldembicki@...il.com>
> ---
Please split this patch from the rest of the series and re-target it
towards net.git.
> v2:
> - fix commit message style issue
>
> drivers/net/dsa/vitesse-vsc73xx-core.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/dsa/vitesse-vsc73xx-core.c b/drivers/net/dsa/vitesse-vsc73xx-core.c
> index c946464489ab..59bb3dbe780a 100644
> --- a/drivers/net/dsa/vitesse-vsc73xx-core.c
> +++ b/drivers/net/dsa/vitesse-vsc73xx-core.c
> @@ -979,17 +979,18 @@ static int vsc73xx_change_mtu(struct dsa_switch *ds, int port, int new_mtu)
> struct vsc73xx *vsc = ds->priv;
>
> return vsc73xx_write(vsc, VSC73XX_BLOCK_MAC, port,
> - VSC73XX_MAXLEN, new_mtu);
> + VSC73XX_MAXLEN, new_mtu + ETH_HLEN + ETH_FCS_LEN);
> }
>
> /* According to application not "VSC7398 Jumbo Frames" setting
> - * up the MTU to 9.6 KB does not affect the performance on standard
> + * up the frame size to 9.6 KB does not affect the performance on standard
> * frames. It is clear from the application note that
> * "9.6 kilobytes" == 9600 bytes.
> */
> static int vsc73xx_get_max_mtu(struct dsa_switch *ds, int port)
> {
> - return 9600;
> + /* max mtu = 9600 - ETH_HLEN - ETH_FCS_LEN */
> + return 9582;
This can also be:
return 9600 - ETH_HLEN - ETH_FCS_LEN;
since the arithmetic is on constants, it can be evaluated at compile
time and it results in the same generated code, but the comment is no
longer necessary.
> }
>
> static void vsc73xx_port_stp_state_set(struct dsa_switch *ds, int port,
> --
> 2.34.1
>
Powered by blists - more mailing lists