diff options
author | Sathya Perla <sathya.perla@emulex.com> | 2012-12-17 19:38:51 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-12-18 16:18:39 -0800 |
commit | d23e946cb67e5011226bcbd1597a632ac7a48c35 (patch) | |
tree | 6c2089b3af7d3d142fb83137b5490628e38a1fd0 /drivers/net/ethernet/emulex/benet/be.h | |
parent | a323d9bf835e27d5e72eae86b5a41747d98bd9d2 (diff) | |
download | lwn-d23e946cb67e5011226bcbd1597a632ac7a48c35.tar.gz lwn-d23e946cb67e5011226bcbd1597a632ac7a48c35.zip |
be2net: fix wrong frag_idx reported by RX CQ
The RX CQ can report completions with invalid frag_idx when the RXQ that
was *previously* using it, was not cleaned up properly. This hits
a BUG_ON() in be2net.
When completion coalescing is enabled on a CQ, an explicit CQ-notify
(with rearm) is needed for each compl, to flush partially coalesced CQ
entries that are pending DMA.
In be_close(), this fix now notifies CQ for each compl, waits explicitly
for the flush compl to arrive and complains if it doesn't arrive.
Also renaming be_crit_error() to be_hw_error() as it's the more
appropriate name and to convey that we don't wait for the flush compl
only when a HW error has occurred.
Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/emulex/benet/be.h')
-rw-r--r-- | drivers/net/ethernet/emulex/benet/be.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/emulex/benet/be.h b/drivers/net/ethernet/emulex/benet/be.h index abf26c7c1d19..3bc1912afba9 100644 --- a/drivers/net/ethernet/emulex/benet/be.h +++ b/drivers/net/ethernet/emulex/benet/be.h @@ -616,7 +616,7 @@ static inline bool be_error(struct be_adapter *adapter) return adapter->eeh_error || adapter->hw_error || adapter->fw_timeout; } -static inline bool be_crit_error(struct be_adapter *adapter) +static inline bool be_hw_error(struct be_adapter *adapter) { return adapter->eeh_error || adapter->hw_error; } |