sfc: Only use TX push if a single descriptor is to be written
authorBen Hutchings <bhutchings@solarflare.com>
Wed, 27 Feb 2013 16:50:38 +0000 (16:50 +0000)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 27 Mar 2013 02:41:11 +0000 (02:41 +0000)
commitb47085aa6c21a8d62b654c0369e615eb7bf167da
tree3611b3852426643be1c802797cf8bc6b3fd9bcd0
parentfe58ada6be173509b8caf9acc1187b601ab4875d
sfc: Only use TX push if a single descriptor is to be  written

[ Upstream commit fae8563b25f73dc584a07bcda7a82750ff4f7672 ]

Using TX push when notifying the NIC of multiple new descriptors in
the ring will very occasionally cause the TX DMA engine to re-use an
old descriptor.  This can result in a duplicated or partly duplicated
packet (new headers with old data), or an IOMMU page fault.  This does
not happen when the pushed descriptor is the only one written.

TX push also provides little latency benefit when a packet requires
more than one descriptor.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
drivers/net/ethernet/sfc/nic.c