Re: [PATCH net] net/mlx5e: Fix validation logic in rate limiting

From: Gal Pressman
Date: Mon Nov 24 2025 - 13:38:02 EST


On 24/11/2025 20:00, Danielle Costantino wrote:
> The rate limiting validation condition currently checks the output
> variable max_bw_value[i] instead of the input value
> maxrate->tc_maxrate[i]. This causes the validation to compare an
> uninitialized or stale value rather than the actual requested rate.
>
> The condition should check the input rate to properly validate against
> the upper limit:
>
> } else if (maxrate->tc_maxrate[i] <= upper_limit_gbps) {
>
> This aligns with the pattern used in the first branch, which correctly
> checks maxrate->tc_maxrate[i] against upper_limit_mbps.
>
> The current implementation can lead to unreliable validation behavior:
>
> - For rates between 25.5 Gbps and 255 Gbps, if max_bw_value[i] is 0
> from initialization, the GBPS path may be taken regardless of whether
> the actual rate is within bounds
>
> - When processing multiple TCs (i > 0), max_bw_value[i] contains the
> value computed for the previous TC, affecting the validation logic
>
> - The overflow check for rates exceeding 255 Gbps may not trigger
> consistently depending on previous array values
>
> This patch ensures the validation correctly examines the requested rate
> value for proper bounds checking.
>
> Fixes: 43b27d1bd88a ("net/mlx5e: Fix wraparound in rate limiting for values above 255 Gbps")
> Signed-off-by: Danielle Costantino <dcostantino@xxxxxxxx>

Thanks Danielle!
Reviewed-by: Gal Pressman <gal@xxxxxxxxxx>