• Niklas Cassel's avatar
    net: stmmac: set MSS for each tx DMA channel · 8d212a9e
    Niklas Cassel authored
    The DMA engine in dwmac4 can segment a large TSO packet to several
    smaller packets of (max) size Maximum Segment Size (MSS).
    
    The DMA engine fetches and saves the MSS via a context descriptor.
    
    This context decriptor has to be provided to each tx DMA channel.
    To ensure that this is done, move struct member mss from stmmac_priv
    to stmmac_tx_queue.
    
    stmmac_reset_queues_param() now also resets mss, together with other
    queue parameters, so reset of mss value can be removed from
    stmmac_resume().
    
    init_dma_tx_desc_rings() now also resets mss, together with other
    queue parameters, so reset of mss value can be removed from
    stmmac_open().
    
    This fixes tx queue timeouts for dwmac4, with DT property
    snps,tx-queues-to-use > 1, when running iperf3 with multiple threads.
    
    Fixes: ce736788 ("net: stmmac: adding multiple buffers for TX")
    Signed-off-by: default avatarNiklas Cassel <niklas.cassel@axis.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    8d212a9e
stmmac_main.c 126 KB