]> git.baikalelectronics.ru Git - kernel.git/commit
gianfar: Maximize Rx buffer size
authorClaudiu Manoil <claudiu.manoil@nxp.com>
Tue, 5 Nov 2019 18:18:21 +0000 (20:18 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 6 Nov 2019 18:25:20 +0000 (10:25 -0800)
commit5e528a5ad0bc53f3f3ea11b4c92f9b6c8bcb767f
tree4798956fc7b88f5103141dffe29120625705fd91
parenta43d88657b2600ac0bc48f5d3fa1c77d25210001
gianfar: Maximize Rx buffer size

Until now the size of a Rx buffer was artificially limited
to 1536B (which happens to be the default, after reset, hardware
value for a Rx buffer). This approach however leaves unused
memory space for Rx packets, since the driver uses a paged
allocation scheme that reserves half a page for each Rx skb.
There's also the inconvenience that frames around 1536 bytes
can get scattered if the limit is slightly exceeded. This limit
can be exceeded even for standard MTU of 1500B traffic, for common
cases like stacked VLANs, or DSA tags.
To address these issues, let's just compute the buffer size
starting from the upper limit of 2KB (half a page) and
subtract the skb overhead and alignment restrictions.

Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/freescale/gianfar.h