diff options
Diffstat (limited to 'drivers/remoteproc/rcar_rproc.c')
| -rw-r--r-- | drivers/remoteproc/rcar_rproc.c | 9 | 
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/remoteproc/rcar_rproc.c b/drivers/remoteproc/rcar_rproc.c index aa86154109c7..1ff2a73ade90 100644 --- a/drivers/remoteproc/rcar_rproc.c +++ b/drivers/remoteproc/rcar_rproc.c @@ -62,13 +62,16 @@ static int rcar_rproc_prepare(struct rproc *rproc)  		rmem = of_reserved_mem_lookup(it.node);  		if (!rmem) { +			of_node_put(it.node);  			dev_err(&rproc->dev,  				"unable to acquire memory-region\n");  			return -EINVAL;  		} -		if (rmem->base > U32_MAX) +		if (rmem->base > U32_MAX) { +			of_node_put(it.node);  			return -EINVAL; +		}  		/* No need to translate pa to da, R-Car use same map */  		da = rmem->base; @@ -79,8 +82,10 @@ static int rcar_rproc_prepare(struct rproc *rproc)  					   rcar_rproc_mem_release,  					   it.node->name); -		if (!mem) +		if (!mem) { +			of_node_put(it.node);  			return -ENOMEM; +		}  		rproc_add_carveout(rproc, mem);  	}  |