• Marcin Wojtas's avatar
    net: mvpp2: enable proper per-CPU TX buffers unmapping · 71ce391d
    Marcin Wojtas authored
    mvpp2 driver allows usage of per-CPU TX processing. Once the packets are
    prepared independetly on each CPU, the hardware enqueues the descriptors in
    common TX queue. After they are sent, the buffers and associated sk_buffs
    should be released on the corresponding CPU.
    
    This is why a special index is maintained in order to point to the right data to
    be released after transmission takes place. Each per-CPU TX queue comprise an
    array of sent sk_buffs, freed in mvpp2_txq_bufs_free function. However, the
    index was used there also for obtaining a descriptor (and therefore a buffer to
    be DMA-unmapped) from common TX queue, which was wrong, because it was not
    referring to the current CPU.
    
    This commit enables proper unmapping of sent data buffers by indexing them in
    per-CPU queues using a dedicated array for keeping their physical addresses.
    Signed-off-by: default avatarMarcin Wojtas <mw@semihalf.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    71ce391d
mvpp2.c 178 KB