ibmvnic: Implement .get_channels
authorJohn Allen <jallen@linux.vnet.ibm.com>
Wed, 2 Aug 2017 21:47:17 +0000 (16:47 -0500)
committerDavid S. Miller <davem@davemloft.net>
Thu, 3 Aug 2017 16:33:06 +0000 (09:33 -0700)
Implement .get_channels (ethtool -l) functionality

Signed-off-by: John Allen <jallen@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ibm/ibmvnic.c

index c40456a..5932160 100644 (file)
@@ -1741,6 +1741,21 @@ static void ibmvnic_get_ringparam(struct net_device *netdev,
        ring->rx_jumbo_pending = 0;
 }
 
+static void ibmvnic_get_channels(struct net_device *netdev,
+                                struct ethtool_channels *channels)
+{
+       struct ibmvnic_adapter *adapter = netdev_priv(netdev);
+
+       channels->max_rx = adapter->max_rx_queues;
+       channels->max_tx = adapter->max_tx_queues;
+       channels->max_other = 0;
+       channels->max_combined = 0;
+       channels->rx_count = adapter->req_rx_queues;
+       channels->tx_count = adapter->req_tx_queues;
+       channels->other_count = 0;
+       channels->combined_count = 0;
+}
+
 static void ibmvnic_get_strings(struct net_device *dev, u32 stringset, u8 *data)
 {
        struct ibmvnic_adapter *adapter = netdev_priv(dev);
@@ -1837,6 +1852,7 @@ static const struct ethtool_ops ibmvnic_ethtool_ops = {
        .set_msglevel           = ibmvnic_set_msglevel,
        .get_link               = ibmvnic_get_link,
        .get_ringparam          = ibmvnic_get_ringparam,
+       .get_channels           = ibmvnic_get_channels,
        .get_strings            = ibmvnic_get_strings,
        .get_sset_count         = ibmvnic_get_sset_count,
        .get_ethtool_stats      = ibmvnic_get_ethtool_stats,