lkml.org 
[lkml]   [2016]   [Apr]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 063/137] net: bcmgenet: fix dma api length mismatch
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Eric Dumazet <edumazet@google.com>

    [ Upstream commit eee577232203842b4dcadb7ab477a298479633ed ]

    When un-mapping skb->data in __bcmgenet_tx_reclaim(),
    we must use the length that was used in original dma_map_single(),
    instead of skb->len that might be bigger (includes the frags)

    We simply can store skb_len into tx_cb_ptr->dma_len and use it
    at unmap time.

    Fixes: 1c1008c793fa ("net: bcmgenet: add main driver file")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Acked-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/net/ethernet/broadcom/genet/bcmgenet.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
    +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
    @@ -1197,7 +1197,7 @@ static unsigned int __bcmgenet_tx_reclai
    dev->stats.tx_bytes += tx_cb_ptr->skb->len;
    dma_unmap_single(&dev->dev,
    dma_unmap_addr(tx_cb_ptr, dma_addr),
    - tx_cb_ptr->skb->len,
    + dma_unmap_len(tx_cb_ptr, dma_len),
    DMA_TO_DEVICE);
    bcmgenet_free_cb(tx_cb_ptr);
    } else if (dma_unmap_addr(tx_cb_ptr, dma_addr)) {
    @@ -1308,7 +1308,7 @@ static int bcmgenet_xmit_single(struct n
    }

    dma_unmap_addr_set(tx_cb_ptr, dma_addr, mapping);
    - dma_unmap_len_set(tx_cb_ptr, dma_len, skb->len);
    + dma_unmap_len_set(tx_cb_ptr, dma_len, skb_len);
    length_status = (skb_len << DMA_BUFLENGTH_SHIFT) | dma_desc_flags |
    (priv->hw_params->qtag_mask << DMA_TX_QTAG_SHIFT) |
    DMA_TX_APPEND_CRC;

    \
     
     \ /
      Last update: 2016-04-18 05:21    [W:2.098 / U:1.200 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site