lkml.org 
[lkml]   [2017]   [Jul]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 049/101] net: bgmac: Fix SOF bit checking
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

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

    From: Florian Fainelli <f.fainelli@gmail.com>

    commit d2b13233879ca1268a1c027d4573109e5a777811 upstream.

    We are checking for the Start of Frame bit in the ctl1 word, while this
    bit is set in the ctl0 word instead. Read the ctl0 word and update the
    check to verify that.

    Fixes: 9cde94506eac ("bgmac: implement scatter/gather support")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/net/ethernet/broadcom/bgmac.c | 5 +++--
    1 file changed, 3 insertions(+), 2 deletions(-)

    --- a/drivers/net/ethernet/broadcom/bgmac.c
    +++ b/drivers/net/ethernet/broadcom/bgmac.c
    @@ -255,15 +255,16 @@ static void bgmac_dma_tx_free(struct bgm
    while (ring->start != ring->end) {
    int slot_idx = ring->start % BGMAC_TX_RING_SLOTS;
    struct bgmac_slot_info *slot = &ring->slots[slot_idx];
    - u32 ctl1;
    + u32 ctl0, ctl1;
    int len;

    if (slot_idx == empty_slot)
    break;

    + ctl0 = le32_to_cpu(ring->cpu_base[slot_idx].ctl0);
    ctl1 = le32_to_cpu(ring->cpu_base[slot_idx].ctl1);
    len = ctl1 & BGMAC_DESC_CTL1_LEN;
    - if (ctl1 & BGMAC_DESC_CTL0_SOF)
    + if (ctl0 & BGMAC_DESC_CTL0_SOF)
    /* Unmap no longer used buffer */
    dma_unmap_single(dma_dev, slot->dma_addr, len,
    DMA_TO_DEVICE);

    \
     
     \ /
      Last update: 2017-07-03 17:05    [W:5.247 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site