Message ID | 20250121044138.2883912-2-hayashi.kunihiko@socionext.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Limit devicetree parameters to hardware capability | expand |
On Tue, 21 Jan 2025 13:41:36 +0900, Kunihiko Hayashi <hayashi.kunihiko@socionext.com> wrote: > The number of MTL queues to use is specified by the parameter > "snps,{tx,rx}-queues-to-use" from stmmac_platform layer. > > However, the maximum numbers of queues are constrained by upper limits > determined by the capability of each hardware feature. It's appropriate > to limit the values not to exceed the upper limit values and display > a warning message. > > Fixes: d976a525c371 ("net: stmmac: multiple queues dt configuration") > Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com> > --- > drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > index 7bf275f127c9..251a8c15637f 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > @@ -7232,6 +7232,19 @@ static int stmmac_hw_init(struct stmmac_priv *priv) > if (priv->dma_cap.tsoen) > dev_info(priv->device, "TSO supported\n"); > > + if (priv->plat->rx_queues_to_use > priv->dma_cap.number_rx_queues) { > + dev_warn(priv->device, > + "Number of Rx queues exceeds dma capability (%d)\n", > + priv->plat->rx_queues_to_use); > + priv->plat->rx_queues_to_use = priv->dma_cap.number_rx_queues; > + } > + if (priv->plat->tx_queues_to_use > priv->dma_cap.number_tx_queues) { > + dev_warn(priv->device, > + "Number of Tx queues exceeds dma capability (%d)\n", > + priv->plat->tx_queues_to_use); I would prefer print these warnings like this: dev_warn(priv->device, "Number of Tx queues (%u) exceeds dma capability (%u)\n", priv->plat->tx_queues_to_use, priv->dma_cap.number_tx_queues); And number_tx_queues, number_rx_queues are u32, so %u would be better. This print format change is quite minor. Probably not worth a re-roll since one can always view DMA capabilities by reading a debugfs entry.
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 7bf275f127c9..251a8c15637f 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -7232,6 +7232,19 @@ static int stmmac_hw_init(struct stmmac_priv *priv) if (priv->dma_cap.tsoen) dev_info(priv->device, "TSO supported\n"); + if (priv->plat->rx_queues_to_use > priv->dma_cap.number_rx_queues) { + dev_warn(priv->device, + "Number of Rx queues exceeds dma capability (%d)\n", + priv->plat->rx_queues_to_use); + priv->plat->rx_queues_to_use = priv->dma_cap.number_rx_queues; + } + if (priv->plat->tx_queues_to_use > priv->dma_cap.number_tx_queues) { + dev_warn(priv->device, + "Number of Tx queues exceeds dma capability (%d)\n", + priv->plat->tx_queues_to_use); + priv->plat->tx_queues_to_use = priv->dma_cap.number_tx_queues; + } + priv->hw->vlan_fail_q_en = (priv->plat->flags & STMMAC_FLAG_VLAN_FAIL_Q_EN); priv->hw->vlan_fail_q = priv->plat->vlan_fail_q;
The number of MTL queues to use is specified by the parameter "snps,{tx,rx}-queues-to-use" from stmmac_platform layer. However, the maximum numbers of queues are constrained by upper limits determined by the capability of each hardware feature. It's appropriate to limit the values not to exceed the upper limit values and display a warning message. Fixes: d976a525c371 ("net: stmmac: multiple queues dt configuration") Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com> --- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 13 +++++++++++++ 1 file changed, 13 insertions(+)