diff options
author | Brett Creeley <brett.creeley@intel.com> | 2019-07-25 10:55:28 +0200 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2019-08-20 21:28:35 +0200 |
commit | c1ddf1f5c4adc1e885dce8533b2245d979f38280 (patch) | |
tree | b654d894fbc7eb7318f3f996efa361ef8af39bd9 | |
parent | Merge tag 'wireless-drivers-next-for-davem-2019-08-19' of git://git.kernel.or... (diff) | |
download | linux-c1ddf1f5c4adc1e885dce8533b2245d979f38280.tar.xz linux-c1ddf1f5c4adc1e885dce8533b2245d979f38280.zip |
ice: Use the software based tail when checking for hung Tx ring
Currently in ice_get_tx_pending we try to read a Tx ring's tail. This is
then compared with the software based head (next_to_clean) to determine
if we have pending work. This will never work because reading of the Tx
ring's tail is no longer supported. Fix this by using the software based
tail (next_to_use) to determine if there is pending work.
Signed-off-by: Brett Creeley <brett.creeley@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
-rw-r--r-- | drivers/net/ethernet/intel/ice/ice_main.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c index c26e6a102dac..1aa7e06ebbdc 100644 --- a/drivers/net/ethernet/intel/ice/ice_main.c +++ b/drivers/net/ethernet/intel/ice/ice_main.c @@ -41,12 +41,12 @@ static void ice_update_pf_stats(struct ice_pf *pf); * ice_get_tx_pending - returns number of Tx descriptors not processed * @ring: the ring of descriptors */ -static u32 ice_get_tx_pending(struct ice_ring *ring) +static u16 ice_get_tx_pending(struct ice_ring *ring) { - u32 head, tail; + u16 head, tail; head = ring->next_to_clean; - tail = readl(ring->tail); + tail = ring->next_to_use; if (head != tail) return (head < tail) ? |