On Mon, 2012-08-06 at 07:19 -0700, Andy Cress wrote:
I found out why the proposed dont-copy-payload patch didn't work with
this pch_gbe NIC.
This NIC PHY requires 64-byte-aligned DMA, and the transmit buffers
won't be transferred if skb->data is not 64-byte-aligned. Apparently
the data copy has a by-product of aligning the buffers.
I tried using skb_reserve(skb,64) in pch_gbe_alloc_tx_buffers and
pch-gbe_alloc_rx_buffers, but that didn't seem to resolve it.
How can I make sure that the transmit data buffers are
64-byte-aligned?
There is no support for such requirement in linux stacks.
Only solution for the driver is to copy all frames to 64-byte-aligned
bounce buffers.