Re: [net PATCH v2 2/2] net: ravb: Fix R-Car RX frame size limit

From: Niklas Söderlund
Date: Wed Aug 28 2024 - 11:03:56 EST


Hi Paul,

Thanks for your work.

On 2024-08-28 11:22:26 +0100, Paul Barker wrote:
> The RX frame size limit should not be based on the current MTU setting.
> Instead it should be based on the hardware capabilities.
>
> Fixes: c156633f1353 ("Renesas Ethernet AVB driver proper")
> Reviewed-by: Sergey Shtylyov <s.shtylyov@xxxxxx>
> Signed-off-by: Paul Barker <paul.barker.ct@xxxxxxxxxxxxxx>

Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@xxxxxxxxxxxx>

> ---
> drivers/net/ethernet/renesas/ravb_main.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c
> index 471a68b0146e..b103632de4d4 100644
> --- a/drivers/net/ethernet/renesas/ravb_main.c
> +++ b/drivers/net/ethernet/renesas/ravb_main.c
> @@ -555,8 +555,10 @@ static void ravb_emac_init_gbeth(struct net_device *ndev)
>
> static void ravb_emac_init_rcar(struct net_device *ndev)
> {
> + struct ravb_private *priv = netdev_priv(ndev);
> +
> /* Receive frame limit set register */

I wonder if we also should expand this comment to explain the addition
of ETH_FCS_LEN, I have to look this up every time :-) How would you feel
about adding something like?

/* Set receive frame length
*
* The length set here described the frame from the destination
* address up to and including the CRC data. However only the frame
* data, exuding the CRC, are transferred to memory. To allow for
* the largest frames add the CRC length to the maximum Rx
* descriptor size.
*/

> - ravb_write(ndev, ndev->mtu + ETH_HLEN + VLAN_HLEN + ETH_FCS_LEN, RFLR);
> + ravb_write(ndev, priv->info->rx_max_frame_size + ETH_FCS_LEN, RFLR);
>
> /* EMAC Mode: PAUSE prohibition; Duplex; RX Checksum; TX; RX */
> ravb_write(ndev, ECMR_ZPF | ECMR_DM |
> --
> 2.43.0
>

--
Kind Regards,
Niklas Söderlund