• Michal Kalderon's avatar
    qed: Add support for freeing two ll2 buffers for corner cases · d531038e
    Michal Kalderon authored
    When posting a packet on the ll2 tx, we can provide a cookie that
    will be returned upon tx completion. This cookie is the ll2 iwarp buffer
    which is then reposted to the rx ring. Part of the unaligned mpa flow
    is determining when a buffer can be reposted. Each buffer needs to be
    sent only once as a cookie for on the tx ring. In packed fpdu case, only
    the last packet will be sent with the buffer, meaning we need to handle the
    case that a cookie can be NULL on tx complete. In addition, when a fpdu
    splits over two buffers, but there are no more fpdus on the second buffer,
    two buffers need to be provided as a cookie. To avoid changing the ll2
    interface to provide two cookies, we introduce a piggy buf pointer,
    relevant for iWARP only, that holds a pointer to a second buffer that
    needs to be released during tx completion.
    Signed-off-by: default avatarMichal Kalderon <Michal.Kalderon@cavium.com>
    Signed-off-by: default avatarAriel Elior <Ariel.Elior@cavium.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    d531038e
qed_iwarp.c 80.8 KB