Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2004fc09 authored by Todor Tomov's avatar Todor Tomov Committed by Mauro Carvalho Chehab
Browse files

media: camss: Fix OF node usage



of_graph_get_next_endpoint increases the refcount of the returned
node and decreases the refcount of the passed node. Take this into
account and use of_node_put properly.

Signed-off-by: default avatarTodor Tomov <todor.tomov@linaro.org>
Signed-off-by: default avatarHans Verkuil <hansverk@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent b873663b
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -296,6 +296,7 @@ static int camss_of_parse_ports(struct device *dev,
		if (of_device_is_available(node))
			notifier->num_subdevs++;

	of_node_put(node);
	size = sizeof(*notifier->subdevs) * notifier->num_subdevs;
	notifier->subdevs = devm_kzalloc(dev, size, GFP_KERNEL);
	if (!notifier->subdevs) {
@@ -326,16 +327,16 @@ static int camss_of_parse_ports(struct device *dev,
		}

		remote = of_graph_get_remote_port_parent(node);
		of_node_put(node);

		if (!remote) {
			dev_err(dev, "Cannot get remote parent\n");
			of_node_put(node);
			return -EINVAL;
		}

		csd->asd.match_type = V4L2_ASYNC_MATCH_FWNODE;
		csd->asd.match.fwnode = of_fwnode_handle(remote);
	}
	of_node_put(node);

	return notifier->num_subdevs;
}