From: Michael Sit Wei Hong <[email protected]>
Add check for below conditions before proceeding to configuration.
A message will be prompted if the input value is invalid.
Idleslope minus sendslope should equal speed_div.
Idleslope is always a positive value.
Sendslope is always a negative value.
Hicredit is always a positive value.
Locredit is always a negative value.
Signed-off-by: Michael Sit Wei Hong <[email protected]>
Signed-off-by: Gan, Yi Fang <[email protected]>
---
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
index ac41ef4cbd2f..e8a079946f84 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
@@ -381,6 +381,11 @@ static int tc_setup_cbs(struct stmmac_priv *priv,
return -EOPNOTSUPP;
}
+ if ((qopt->idleslope - qopt->sendslope != speed_div) ||
+ qopt->idleslope < 0 || qopt->sendslope > 0 ||
+ qopt->hicredit < 0 || qopt->locredit > 0)
+ return -EINVAL;
+
mode_to_use = priv->plat->tx_queues_cfg[queue].mode_to_use;
if (mode_to_use == MTL_QUEUE_DCB && qopt->enable) {
ret = stmmac_dma_qmode(priv, priv->ioaddr, queue, MTL_QUEUE_AVB);
--
2.34.1
On 27.10.2023 08:11, Gan Yi Fang wrote:
> From: Michael Sit Wei Hong <[email protected]>
>
> Add check for below conditions before proceeding to configuration.
> A message will be prompted if the input value is invalid.
>
> Idleslope minus sendslope should equal speed_div.
> Idleslope is always a positive value.
> Sendslope is always a negative value.
> Hicredit is always a positive value.
> Locredit is always a negative value.
Can those values be equal to 0? The code allows it but the commit msg doesn't mention that.
Some drivers does not allow 0, lan966x_cbs_add e.g. Would be good to double check that.
>
> Signed-off-by: Michael Sit Wei Hong <[email protected]>
> Signed-off-by: Gan, Yi Fang <[email protected]>
> ---
> drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
> index ac41ef4cbd2f..e8a079946f84 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
> @@ -381,6 +381,11 @@ static int tc_setup_cbs(struct stmmac_priv *priv,
> return -EOPNOTSUPP;
> }
>
> + if ((qopt->idleslope - qopt->sendslope != speed_div) ||
> + qopt->idleslope < 0 || qopt->sendslope > 0 ||
> + qopt->hicredit < 0 || qopt->locredit > 0)
> + return -EINVAL;
> +
> mode_to_use = priv->plat->tx_queues_cfg[queue].mode_to_use;
> if (mode_to_use == MTL_QUEUE_DCB && qopt->enable) {
> ret = stmmac_dma_qmode(priv, priv->ioaddr, queue, MTL_QUEUE_AVB);
Hi,
Value zero is allowed. I will update V2 with the commit msg updated.
Best regards,
Gan Yi Fang
> -----Original Message-----
> From: Drewek, Wojciech <[email protected]>
> Sent: Friday, October 27, 2023 6:08 PM
> To: Gan, Yi Fang <[email protected]>; Alexandre Torgue
> <[email protected]>; Jose Abreu <[email protected]>;
> David S . Miller <[email protected]>; Eric Dumazet
> <[email protected]>; Jakub Kicinski <[email protected]>; Paolo Abeni
> <[email protected]>; Maxime Coquelin <[email protected]>;
> [email protected]; [email protected]; linux-
> [email protected]; [email protected]
> Cc: Looi, Hong Aun <[email protected]>; Voon, Weifeng
> <[email protected]>; Song, Yoong Siang
> <[email protected]>; Sit, Michael Wei Hong
> <[email protected]>
> Subject: Re: [PATCH net-next 1/1] net: stmmac: check CBS input values before
> configuration
>
>
>
> On 27.10.2023 08:11, Gan Yi Fang wrote:
> > From: Michael Sit Wei Hong <[email protected]>
> >
> > Add check for below conditions before proceeding to configuration.
> > A message will be prompted if the input value is invalid.
> >
> > Idleslope minus sendslope should equal speed_div.
> > Idleslope is always a positive value.
> > Sendslope is always a negative value.
> > Hicredit is always a positive value.
> > Locredit is always a negative value.
>
> Can those values be equal to 0? The code allows it but the commit msg
> doesn't mention that.
> Some drivers does not allow 0, lan966x_cbs_add e.g. Would be good to
> double check that.
>
> >
> > Signed-off-by: Michael Sit Wei Hong <[email protected]>
> > Signed-off-by: Gan, Yi Fang <[email protected]>
> > ---
> > drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c | 5 +++++
> > 1 file changed, 5 insertions(+)
> >
> > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
> b/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
> > index ac41ef4cbd2f..e8a079946f84 100644
> > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
> > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c
> > @@ -381,6 +381,11 @@ static int tc_setup_cbs(struct stmmac_priv *priv,
> > return -EOPNOTSUPP;
> > }
> >
> > + if ((qopt->idleslope - qopt->sendslope != speed_div) ||
> > + qopt->idleslope < 0 || qopt->sendslope > 0 ||
> > + qopt->hicredit < 0 || qopt->locredit > 0)
> > + return -EINVAL;
> > +
> > mode_to_use = priv->plat->tx_queues_cfg[queue].mode_to_use;
> > if (mode_to_use == MTL_QUEUE_DCB && qopt->enable) {
> > ret = stmmac_dma_qmode(priv, priv->ioaddr, queue,
> MTL_QUEUE_AVB);