diff options
| author | Mark Brown <[email protected]> | 2023-07-23 22:33:05 +0000 |
|---|---|---|
| committer | Mark Brown <[email protected]> | 2023-07-23 22:33:05 +0000 |
| commit | de1b43a57aff8b1808bbfe0402932f9e373d1172 (patch) | |
| tree | 699c828946223aab18a0aab5175e6902a8ce2e42 /drivers/net/ethernet/intel/ice/ice_ethtool.c | |
| parent | ASoC: wm8960: Add DAC filter characteristics selection (diff) | |
| parent | Linux 6.5-rc3 (diff) | |
| download | kernel-de1b43a57aff8b1808bbfe0402932f9e373d1172.tar.gz kernel-de1b43a57aff8b1808bbfe0402932f9e373d1172.zip | |
ASoC: Merge up fixes from mainline
There's several things here that will really help my CI.
Diffstat (limited to 'drivers/net/ethernet/intel/ice/ice_ethtool.c')
| -rw-r--r-- | drivers/net/ethernet/intel/ice/ice_ethtool.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/drivers/net/ethernet/intel/ice/ice_ethtool.c b/drivers/net/ethernet/intel/ice/ice_ethtool.c index 8d5cbbd0b3d5..ad4d4702129f 100644 --- a/drivers/net/ethernet/intel/ice/ice_ethtool.c +++ b/drivers/net/ethernet/intel/ice/ice_ethtool.c @@ -2681,8 +2681,13 @@ ice_get_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring, ring->rx_max_pending = ICE_MAX_NUM_DESC; ring->tx_max_pending = ICE_MAX_NUM_DESC; - ring->rx_pending = vsi->rx_rings[0]->count; - ring->tx_pending = vsi->tx_rings[0]->count; + if (vsi->tx_rings && vsi->rx_rings) { + ring->rx_pending = vsi->rx_rings[0]->count; + ring->tx_pending = vsi->tx_rings[0]->count; + } else { + ring->rx_pending = 0; + ring->tx_pending = 0; + } /* Rx mini and jumbo rings are not supported */ ring->rx_mini_max_pending = 0; @@ -2716,6 +2721,10 @@ ice_set_ringparam(struct net_device *netdev, struct ethtool_ringparam *ring, return -EINVAL; } + /* Return if there is no rings (device is reloading) */ + if (!vsi->tx_rings || !vsi->rx_rings) + return -EBUSY; + new_tx_cnt = ALIGN(ring->tx_pending, ICE_REQ_DESC_MULTIPLE); if (new_tx_cnt != ring->tx_pending) netdev_info(netdev, "Requested Tx descriptor count rounded up to %d\n", |
