Alexander Duyck 847a1d6796 e1000: Do not overestimate descriptor counts in Tx pre-check
The current code path is capable of grossly overestimating the number of
descriptors needed to transmit a new frame.  This specifically occurs if
the skb contains a number of 4K pages.  The issue is that the logic for
determining the descriptors needed is ((S) >> (X)) + 1.  When X is 12 it
means that we were indicating that we required 2 descriptors for each 4K
page when we only needed one.

This change corrects this by instead adding (1 << (X)) - 1 to the S value
instead of adding 1 after the fact.  This way we get an accurate descriptor
needed count as we are essentially doing a DIV_ROUNDUP().

Reported-by: Ivan Suzdal <isuzdal@mirantis.com>
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>
2016-04-05 14:59:05 -07:00
..
2016-03-18 23:14:15 -04:00
2016-03-10 10:30:21 +01:00
2016-01-25 10:51:52 -08:00
2016-03-17 21:05:01 -04:00
2016-02-14 14:36:04 -08:00
2016-03-23 14:35:31 -04:00
2016-03-13 22:08:01 -04:00
2016-03-13 22:40:24 -04:00
2016-03-13 22:40:24 -04:00
2016-03-17 21:05:01 -04:00
2016-03-13 22:40:24 -04:00
2016-03-01 15:54:31 -05:00