e1000: Double Tx descriptors needed check for 82544
authorAlexander Duyck <aduyck@mirantis.com>
Wed, 2 Mar 2016 21:16:08 +0000 (16:16 -0500)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Tue, 5 Apr 2016 22:05:51 +0000 (15:05 -0700)
commita4605fef7132f19afded76ee025c957558271a7d
tree475354a2f91547a5e077c4eba46aa22e6efd4130
parent847a1d6796c767f8b697ead60997b847a84b897b
e1000: Double Tx descriptors needed check for 82544

The 82544 has code that adds one additional descriptor per data buffer.
However we weren't taking that into account when determining the descriptors
needed for the next transmit at the end of the xmit_frame path.

This change takes that into account by doubling the number of descriptors
needed for the 82544 so that we can avoid a potential issue where we could
hang the Tx ring by loading frames with xmit_more enabled and then stopping
the ring without writing the tail.

In addition it adds a few more descriptors to account for some additional
workarounds that have been added over time.

Signed-off-by: Alexander Duyck <aduyck@mirantis.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/e1000/e1000_main.c