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.16 0834/1039] rpmsg: core: Clean up resources on announce_create failure.
    Date
    From: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>

    commit 8066c615cb69b7da8a94f59379847b037b3a5e46 upstream.

    During the rpmsg_dev_probe, if rpdev->ops->announce_create returns an
    error, the rpmsg device and default endpoint should be freed before
    exiting the function.

    Fixes: 5e619b48677c ("rpmsg: Split rpmsg core and virtio backend")
    Suggested-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
    Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Cc: stable <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20211206190758.10004-1-arnaud.pouliquen@foss.st.com
    Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/rpmsg/rpmsg_core.c | 20 ++++++++++++++++----
    1 file changed, 16 insertions(+), 4 deletions(-)

    --- a/drivers/rpmsg/rpmsg_core.c
    +++ b/drivers/rpmsg/rpmsg_core.c
    @@ -540,13 +540,25 @@ static int rpmsg_dev_probe(struct device
    err = rpdrv->probe(rpdev);
    if (err) {
    dev_err(dev, "%s: failed: %d\n", __func__, err);
    - if (ept)
    - rpmsg_destroy_ept(ept);
    - goto out;
    + goto destroy_ept;
    }

    - if (ept && rpdev->ops->announce_create)
    + if (ept && rpdev->ops->announce_create) {
    err = rpdev->ops->announce_create(rpdev);
    + if (err) {
    + dev_err(dev, "failed to announce creation\n");
    + goto remove_rpdev;
    + }
    + }
    +
    + return 0;
    +
    +remove_rpdev:
    + if (rpdrv->remove)
    + rpdrv->remove(rpdev);
    +destroy_ept:
    + if (ept)
    + rpmsg_destroy_ept(ept);
    out:
    return err;
    }

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