net: fec: fix fec_enet_get_free_txdesc_num
When first initialized, cur_tx points to the 1st entry in the queue, and dirty_tx points to the last. At this point, fec_enet_get_free_txdesc_num will return tx_ring_size -2. If tx_ring_size -2 entries are now queued, then fec_enet_get_free_txdesc_num should return 0, but it returns tx_ring_size instead. Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
095098e194
commit
93c595f7b8
|
@ -296,7 +296,7 @@ static int fec_enet_get_free_txdesc_num(struct fec_enet_private *fep,
|
|||
entries = ((const char *)txq->dirty_tx -
|
||||
(const char *)txq->cur_tx) / fep->bufdesc_size - 1;
|
||||
|
||||
return entries > 0 ? entries : entries + txq->tx_ring_size;
|
||||
return entries >= 0 ? entries : entries + txq->tx_ring_size;
|
||||
}
|
||||
|
||||
static void swap_buffer(void *bufaddr, int len)
|
||||
|
|
Loading…
Reference in New Issue