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>
This commit is contained in:
committed by
Jeff Kirsher
parent
932630fa90
commit
c1ddf1f5c4
@@ -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) ?
|
||||
|
||||
Reference in New Issue
Block a user