net: ethernet: ti: cpsw_ethtool: fix ethtool ring param set
authorIvan Khoronzhuk <ivan.khoronzhuk@linaro.org>
Fri, 31 May 2019 13:47:25 +0000 (16:47 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 3 Jun 2019 21:33:30 +0000 (14:33 -0700)
Fix ability to set RX descriptor number, the reason - initially
"tx_max_pending" was set incorrectly, but the issue appears after
adding sanity check, so fix is for "sanity" patch.

Fixes: 37e2d99b59c476 ("ethtool: Ensure new ring parameters are within bounds during SRINGPARAM")
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ti/cpsw_ethtool.c

index a4a7ec0d2531281025497e06578c2554b028b7e4..6d1c9ebae7cc790309b860e6258875d78bf9e1dd 100644 (file)
@@ -643,7 +643,7 @@ void cpsw_get_ringparam(struct net_device *ndev,
        struct cpsw_common *cpsw = priv->cpsw;
 
        /* not supported */
-       ering->tx_max_pending = 0;
+       ering->tx_max_pending = cpsw->descs_pool_size - CPSW_MAX_QUEUES;
        ering->tx_pending = cpdma_get_num_tx_descs(cpsw->dma);
        ering->rx_max_pending = cpsw->descs_pool_size - CPSW_MAX_QUEUES;
        ering->rx_pending = cpdma_get_num_rx_descs(cpsw->dma);