This situation happens when netif->credit_bytes is using the default of ~0UL, effectively -1. Once the current tx packet size is greater than the netif->remaining_credit, transmits will stall until netif->remaining_credit wraps back to ~0UL in tx_add_credit(). The min(netif->remaining_credit + netif->credit_bytes, max_burst) has the effect of decrementing netif->remaining_credit by 1. The min will continually be less than the current tx packet size until tx_add_credit() is called packet size times which allows netif->remaining_credit to wrap back to ~0UL.
The patch splits the min() into two steps to eliminate the case of adding by -1.
signed-of-by Kirk Allan <kallan@novell.com>
The patch splits the min() into two steps to eliminate the case of adding by -1.
signed-of-by Kirk Allan <kallan@novell.com>