diff options
author | David S. Miller <davem@davemloft.net> | 2013-03-13 05:14:59 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-03-13 05:14:59 -0400 |
commit | 6f08158de9e5a15a2f2b25ed651b5120a2ec7b5b (patch) | |
tree | dd1a0e5f097892416b974ffd9600e7f5ee2f10a9 /drivers | |
parent | 876254ae2758d50dcb08c7bd00caf6a806571178 (diff) | |
parent | fae8563b25f73dc584a07bcda7a82750ff4f7672 (diff) |
Merge branch 'sfc-3.9' of git://git.kernel.org/pub/scm/linux/kernel/git/bwh/sfc
Ben Hutchings says:
====================
Just the one bug fix I mentioned before, but it's a pretty important one
as it can cause silent data corruption or IOMMU page faults.
This would be suitable for stable and should apply cleanly to all the
3.x.y branches. I'm still working through testing of larger sets of
fixes.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/ethernet/sfc/nic.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/ethernet/sfc/nic.c b/drivers/net/ethernet/sfc/nic.c index 0ad790cc473..eaa8e874a3c 100644 --- a/drivers/net/ethernet/sfc/nic.c +++ b/drivers/net/ethernet/sfc/nic.c @@ -376,7 +376,8 @@ efx_may_push_tx_desc(struct efx_tx_queue *tx_queue, unsigned int write_count) return false; tx_queue->empty_read_count = 0; - return ((empty_read_count ^ write_count) & ~EFX_EMPTY_COUNT_VALID) == 0; + return ((empty_read_count ^ write_count) & ~EFX_EMPTY_COUNT_VALID) == 0 + && tx_queue->write_count - write_count == 1; } /* For each entry inserted into the software descriptor ring, create a |