• Ben Hutchings's avatar
    sfc: Simplify TSO header buffer allocation · f7251a9c
    Ben Hutchings authored
    TSO header buffers contain a control structure immediately followed by
    the packet headers, and are kept on a free list when not in use.  This
    complicates buffer management and tends to result in cache read misses
    when we recycle such buffers (particularly if DMA-coherent memory
    requires caches to be disabled).
    
    Replace the free list with a simple mapping by descriptor index.  We
    know that there is always a payload descriptor between any two
    descriptors with TSO header buffers, so we can allocate only one
    such buffer for each two descriptors.
    
    While we're at it, use a standard error code for allocation failure,
    not -1.
    Signed-off-by: default avatarBen Hutchings <bhutchings@solarflare.com>
    f7251a9c
nic.c 61 KB