lkml.org 
[lkml]   [2020]   [May]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.9 11/27] net/sonic: Fix a resource leak in an error handling path in 'jazz_sonic_probe()'
    Date
    From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>

    [ Upstream commit 10e3cc180e64385edc9890c6855acf5ed9ca1339 ]

    A call to 'dma_alloc_coherent()' is hidden in 'sonic_alloc_descriptors()',
    called from 'sonic_probe1()'.

    This is correctly freed in the remove function, but not in the error
    handling path of the probe function.
    Fix it and add the missing 'dma_free_coherent()' call.

    While at it, rename a label in order to be slightly more informative.

    Fixes: efcce839360f ("[PATCH] macsonic/jazzsonic network drivers update")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/ethernet/natsemi/jazzsonic.c | 6 ++++--
    1 file changed, 4 insertions(+), 2 deletions(-)

    diff --git a/drivers/net/ethernet/natsemi/jazzsonic.c b/drivers/net/ethernet/natsemi/jazzsonic.c
    index acf3f11e38cc1..68d2f31921ff8 100644
    --- a/drivers/net/ethernet/natsemi/jazzsonic.c
    +++ b/drivers/net/ethernet/natsemi/jazzsonic.c
    @@ -247,13 +247,15 @@ static int jazz_sonic_probe(struct platform_device *pdev)
    goto out;
    err = register_netdev(dev);
    if (err)
    - goto out1;
    + goto undo_probe1;

    printk("%s: MAC %pM IRQ %d\n", dev->name, dev->dev_addr, dev->irq);

    return 0;

    -out1:
    +undo_probe1:
    + dma_free_coherent(lp->device, SIZEOF_SONIC_DESC * SONIC_BUS_SCALE(lp->dma_bitmode),
    + lp->descriptors, lp->descriptors_laddr);
    release_mem_region(dev->base_addr, SONIC_MEM_SIZE);
    out:
    free_netdev(dev);
    --
    2.20.1
    \
     
     \ /
      Last update: 2020-05-14 21:00    [W:4.833 / U:0.116 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site