Message ID | 68feac4e-73d3-a689-6199-d42c72785c14@linux.vnet.ibm.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
On Wed, 2 Aug 2017 16:47:17 -0500 John Allen <jallen@linux.vnet.ibm.com> wrote: > +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; > +} Minor nit, since the structure is already initialized to zero by caller, you don't need to fill in the values that are zero. static noinline_for_stack int ethtool_get_channels(struct net_device *dev, void __user *useraddr) { struct ethtool_channels channels = { .cmd = ETHTOOL_GCHANNELS }; << all unspecifed fields are zero'd if (!dev->ethtool_ops->get_channels) return -EOPNOTSUPP; dev->ethtool_ops->get_channels(dev, &channels);
diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c index 1cc5db94e40f..130aee7b5c32 100644 --- a/drivers/net/ethernet/ibm/ibmvnic.c +++ b/drivers/net/ethernet/ibm/ibmvnic.c @@ -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,
Implement .get_channels (ethtool -l) functionality Signed-off-by: John Allen <jallen@linux.vnet.ibm.com> ---