lkml.org 
[lkml]   [2020]   [May]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 177/312] ethernet: micrel: fix some error codes
    Date
    From: Dan Carpenter <dan.carpenter@oracle.com>

    commit 3af0d554c1ce11e9d0953381ff566271f9ab81a9 upstream.

    There were two issues here:
    1) dma_mapping_error() return true/false but we want to return -ENOMEM
    2) If dmaengine_prep_slave_sg() failed then "err" wasn't set but
    presumably that should be -ENOMEM as well.

    I changed the success path to "return 0;" instead of "return ret;" for
    clarity.

    Fixes: 94fe8c683cea ('ks8842: Support DMA when accessed via timberdale')
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/net/ethernet/micrel/ks8842.c | 10 ++++++----
    1 file changed, 6 insertions(+), 4 deletions(-)

    --- a/drivers/net/ethernet/micrel/ks8842.c
    +++ b/drivers/net/ethernet/micrel/ks8842.c
    @@ -561,8 +561,8 @@ static int __ks8842_start_new_rx_dma(str
    sg_init_table(sg, 1);
    sg_dma_address(sg) = dma_map_single(adapter->dev,
    ctl->skb->data, DMA_BUFFER_SIZE, DMA_FROM_DEVICE);
    - err = dma_mapping_error(adapter->dev, sg_dma_address(sg));
    - if (unlikely(err)) {
    + if (dma_mapping_error(adapter->dev, sg_dma_address(sg))) {
    + err = -ENOMEM;
    sg_dma_address(sg) = 0;
    goto out;
    }
    @@ -572,8 +572,10 @@ static int __ks8842_start_new_rx_dma(str
    ctl->adesc = dmaengine_prep_slave_sg(ctl->chan,
    sg, 1, DMA_DEV_TO_MEM, DMA_PREP_INTERRUPT);

    - if (!ctl->adesc)
    + if (!ctl->adesc) {
    + err = -ENOMEM;
    goto out;
    + }

    ctl->adesc->callback_param = netdev;
    ctl->adesc->callback = ks8842_dma_rx_cb;
    @@ -584,7 +586,7 @@ static int __ks8842_start_new_rx_dma(str
    goto out;
    }

    - return err;
    + return 0;
    out:
    if (sg_dma_address(sg))
    dma_unmap_single(adapter->dev, sg_dma_address(sg),

    \
     
     \ /
      Last update: 2020-05-08 14:44    [W:3.362 / U:0.236 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site