Merge tag 'remoteproc-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad...
[firefly-linux-kernel-4.4.55.git] / drivers / remoteproc / remoteproc_core.c
index 56a0f8d6855b11699fc86c63bd7dcb4421cf3332..022dc635d01e4935ee84c0378e0d606e94028a39 100644 (file)
@@ -61,7 +61,7 @@ static const char *rproc_crash_to_string(enum rproc_crash_type type)
 {
        if (type < ARRAY_SIZE(rproc_crash_names))
                return rproc_crash_names[type];
-       return "unkown";
+       return "unknown";
 }
 
 /*
@@ -218,7 +218,7 @@ int rproc_alloc_vring(struct rproc_vdev *rvdev, int i)
         * TODO: support predefined notifyids (via resource table)
         */
        ret = idr_alloc(&rproc->notifyids, rvring, 0, 0, GFP_KERNEL);
-       if (ret) {
+       if (ret < 0) {
                dev_err(dev, "idr_alloc failed: %d\n", ret);
                dma_free_coherent(dev->parent, size, va, dma);
                return ret;
@@ -368,10 +368,12 @@ static int rproc_handle_vdev(struct rproc *rproc, struct fw_rsc_vdev *rsc,
        /* it is now safe to add the virtio device */
        ret = rproc_add_virtio_dev(rvdev, rsc->id);
        if (ret)
-               goto free_rvdev;
+               goto remove_rvdev;
 
        return 0;
 
+remove_rvdev:
+       list_del(&rvdev->node);
 free_rvdev:
        kfree(rvdev);
        return ret;