There is no cleanup to perform in case an error occurs inside rproc_add_virtio_dev, so remove the goto label and just return in such cases.
Signed-off-by: Francesco Valla <[email protected]> --- drivers/remoteproc/remoteproc_virtio.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/drivers/remoteproc/remoteproc_virtio.c b/drivers/remoteproc/remoteproc_virtio.c index d5e9ff045a28..096bcba527c1 100644 --- a/drivers/remoteproc/remoteproc_virtio.c +++ b/drivers/remoteproc/remoteproc_virtio.c @@ -376,9 +376,8 @@ static int rproc_add_virtio_dev(struct rproc_vdev *rvdev, int id) int ret; if (rproc->ops->kick == NULL) { - ret = -EINVAL; dev_err(dev, ".kick method not defined for %s\n", rproc->name); - goto out; + return -EINVAL; } /* Try to find dedicated vdev buffer carveout */ @@ -394,7 +393,7 @@ static int rproc_add_virtio_dev(struct rproc_vdev *rvdev, int id) mem->of_resm_idx); if (ret) { dev_err(dev, "Can't associate reserved memory\n"); - goto out; + return ret; } } else { if (mem->va) { @@ -412,7 +411,7 @@ static int rproc_add_virtio_dev(struct rproc_vdev *rvdev, int id) mem->len); if (ret < 0) { dev_err(dev, "Failed to associate buffer\n"); - goto out; + return ret; } } } else { @@ -431,11 +430,10 @@ static int rproc_add_virtio_dev(struct rproc_vdev *rvdev, int id) /* Allocate virtio device */ vdev = kzalloc_obj(*vdev); - if (!vdev) { - ret = -ENOMEM; - goto out; - } - vdev->id.device = id, + if (!vdev) + return -ENOMEM; + + vdev->id.device = id, vdev->config = &rproc_virtio_config_ops, vdev->dev.parent = dev; vdev->dev.release = rproc_virtio_dev_release; @@ -447,13 +445,12 @@ static int rproc_add_virtio_dev(struct rproc_vdev *rvdev, int id) if (ret) { put_device(&vdev->dev); dev_err(dev, "failed to register vdev: %d\n", ret); - goto out; + return ret; } dev_info(dev, "registered %s (type %d)\n", dev_name(&vdev->dev), id); -out: - return ret; + return 0; } /** -- 2.55.0

