diff options
author | Thomas Falcon <tlfalcon@linux.vnet.ibm.com> | 2017-03-05 12:18:41 -0600 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-03-07 14:14:30 -0800 |
commit | 142c0ac445792c492579cb01f1cfd4e32e6dfcce (patch) | |
tree | 656a3545ab1f3070a77f5bf7fbca80bd400871d9 /drivers/net/ethernet/ibm/ibmvnic.h | |
parent | 6c4dc75c251721f517e9daeb5370ea606b5b35ce (diff) | |
download | blackbird-obmc-linux-142c0ac445792c492579cb01f1cfd4e32e6dfcce.tar.gz blackbird-obmc-linux-142c0ac445792c492579cb01f1cfd4e32e6dfcce.zip |
ibmvnic: Fix overflowing firmware/hardware TX queue
Use a counter to track the number of outstanding transmissions sent
that have not received completions. If the counter reaches the maximum
number of queue entries, stop transmissions on that queue. As we receive
more completions from firmware, wake the queue once the counter reaches
an acceptable level.
This patch prevents hardware/firmware TX queue from filling up and
and generating errors. Since incorporating this fix, internal testing
has reported that these firmware errors have stopped.
Signed-off-by: Thomas Falcon <tlfalcon@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/ibm/ibmvnic.h')
-rw-r--r-- | drivers/net/ethernet/ibm/ibmvnic.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/ethernet/ibm/ibmvnic.h b/drivers/net/ethernet/ibm/ibmvnic.h index 422824f1f42a..1993b42666f7 100644 --- a/drivers/net/ethernet/ibm/ibmvnic.h +++ b/drivers/net/ethernet/ibm/ibmvnic.h @@ -863,6 +863,7 @@ struct ibmvnic_sub_crq_queue { spinlock_t lock; struct sk_buff *rx_skb_top; struct ibmvnic_adapter *adapter; + atomic_t used; }; struct ibmvnic_long_term_buff { |