lkml.org 
[lkml]   [2022]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 362/846] can: rcar_canfd: rcar_canfd_channel_probe(): make sure we free CAN network device
    Date
    From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>

    [ Upstream commit 72b1e360572f9fa7d08ee554f1da29abce23f288 ]

    Make sure we free CAN network device in the error path. There are
    several jumps to fail label after allocating the CAN network device
    successfully. This patch places the free_candev() under fail label so
    that in failure path a jump to fail label frees the CAN network
    device.

    Fixes: 76e9353a80e9 ("can: rcar_canfd: Add support for RZ/G2L family")
    Link: https://lore.kernel.org/all/20220106114801.20563-1-prabhakar.mahadev-lad.rj@bp.renesas.com
    Reported-by: Pavel Machek <pavel@denx.de>
    Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
    Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/can/rcar/rcar_canfd.c | 5 ++---
    1 file changed, 2 insertions(+), 3 deletions(-)

    diff --git a/drivers/net/can/rcar/rcar_canfd.c b/drivers/net/can/rcar/rcar_canfd.c
    index ff9d0f5ae0dd2..388521e70837f 100644
    --- a/drivers/net/can/rcar/rcar_canfd.c
    +++ b/drivers/net/can/rcar/rcar_canfd.c
    @@ -1640,8 +1640,7 @@ static int rcar_canfd_channel_probe(struct rcar_canfd_global *gpriv, u32 ch,
    ndev = alloc_candev(sizeof(*priv), RCANFD_FIFO_DEPTH);
    if (!ndev) {
    dev_err(&pdev->dev, "alloc_candev() failed\n");
    - err = -ENOMEM;
    - goto fail;
    + return -ENOMEM;
    }
    priv = netdev_priv(ndev);

    @@ -1735,8 +1734,8 @@ static int rcar_canfd_channel_probe(struct rcar_canfd_global *gpriv, u32 ch,

    fail_candev:
    netif_napi_del(&priv->napi);
    - free_candev(ndev);
    fail:
    + free_candev(ndev);
    return err;
    }

    --
    2.34.1


    \
     
     \ /
      Last update: 2022-01-24 22:09    [W:4.678 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site