s390/qeth: add support for ETHTOOL_GRINGPARAM
authorJulian Wiedmann <jwi@linux.ibm.com>
Fri, 15 Feb 2019 18:22:30 +0000 (19:22 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sat, 16 Feb 2019 04:35:30 +0000 (20:35 -0800)
Implement a trivial callback that exposes the queue sizes.

Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/s390/net/qeth_ethtool.c

index 9ce5ef5fcf7a2b5674fbc7d0eae25fdf2a051b83..93a53fed4cf8908698592988691390a4e8ea2203 100644 (file)
@@ -102,6 +102,22 @@ static void qeth_get_ethtool_stats(struct net_device *dev,
                                   txq_stats, TXQ_STATS_LEN);
 }
 
+static void qeth_get_ringparam(struct net_device *dev,
+                              struct ethtool_ringparam *param)
+{
+       struct qeth_card *card = dev->ml_priv;
+
+       param->rx_max_pending = QDIO_MAX_BUFFERS_PER_Q;
+       param->rx_mini_max_pending = 0;
+       param->rx_jumbo_max_pending = 0;
+       param->tx_max_pending = QDIO_MAX_BUFFERS_PER_Q;
+
+       param->rx_pending = card->qdio.in_buf_pool.buf_count;
+       param->rx_mini_pending = 0;
+       param->rx_jumbo_pending = 0;
+       param->tx_pending = QDIO_MAX_BUFFERS_PER_Q;
+}
+
 static void qeth_get_strings(struct net_device *dev, u32 stringset, u8 *data)
 {
        struct qeth_card *card = dev->ml_priv;
@@ -338,6 +354,7 @@ static int qeth_get_link_ksettings(struct net_device *netdev,
 
 const struct ethtool_ops qeth_ethtool_ops = {
        .get_link = ethtool_op_get_link,
+       .get_ringparam = qeth_get_ringparam,
        .get_strings = qeth_get_strings,
        .get_ethtool_stats = qeth_get_ethtool_stats,
        .get_sset_count = qeth_get_sset_count,