Commit 20d8e861 authored by Yangtao Li's avatar Yangtao Li Committed by Greg Kroah-Hartman
Browse files

serial/sunsu: add missing of_node_put()



of_find_node_by_path() acquires a reference to the node
returned by it and that reference needs to be dropped by its caller.
This place is not doing this, so fix it.

Signed-off-by: default avatarYangtao Li <tiny.windzz@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 3c81ba92
Loading
Loading
Loading
Loading
+15 −5
Original line number Diff line number Diff line
@@ -1394,22 +1394,32 @@ static inline struct console *SUNSU_CONSOLE(void)
static enum su_type su_get_type(struct device_node *dp)
{
	struct device_node *ap = of_find_node_by_path("/aliases");
	enum su_type rc = SU_PORT_PORT;

	if (ap) {
		struct device_node *tmp;
		const char *keyb = of_get_property(ap, "keyboard", NULL);
		const char *ms = of_get_property(ap, "mouse", NULL);

		if (keyb) {
			if (dp == of_find_node_by_path(keyb))
				return SU_PORT_KBD;
			tmp = of_find_node_by_path(keyb);
			if (tmp && dp == tmp){
				rc = SU_PORT_KBD;
				goto out;
			}
		}
		if (ms) {
			if (dp == of_find_node_by_path(ms))
				return SU_PORT_MS;
			tmp = of_find_node_by_path(ms);
			if (tmp && dp == tmp){
				rc = SU_PORT_MS;
				goto out;
			}
		}
	}

	return SU_PORT_PORT;
out:
	of_node_put(ap);
	return rc;
}

static int su_probe(struct platform_device *op)