In case of rpmsg_register_device() failure, vch previously
allocated must be free.

fixes: 6eed598a0491 ("rpmsg: Split off generic tail of create_channel()")

Signed-off-by: Loic Pallardy <[email protected]>
---
 drivers/rpmsg/virtio_rpmsg_bus.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/rpmsg/virtio_rpmsg_bus.c b/drivers/rpmsg/virtio_rpmsg_bus.c
index 664f957..10f927e 100644
--- a/drivers/rpmsg/virtio_rpmsg_bus.c
+++ b/drivers/rpmsg/virtio_rpmsg_bus.c
@@ -431,8 +431,10 @@ static struct rpmsg_device *rpmsg_create_channel(struct 
virtproc_info *vrp,
        rpdev->dev.parent = &vrp->vdev->dev;
        rpdev->dev.release = virtio_rpmsg_release_device;
        ret = rpmsg_register_device(rpdev);
-       if (ret)
+       if (ret) {
+               kfree(vch);
                return NULL;
+       }
 
        return rpdev;
 }
-- 
1.9.1

Reply via email to