From: David Miller <davem@davemloft.net>
To: tiny.windzz@gmail.com
Cc: gregkh@linuxfoundation.org, jslaby@suse.com,
sparclinux@vger.kernel.org, linux-serial@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] serial/sunsu: add missing of_node_put()
Date: Sun, 02 Dec 2018 20:57:52 -0800 (PST) [thread overview]
Message-ID: <20181202.205752.1359988041150979586.davem@davemloft.net> (raw)
In-Reply-To: <20181121160615.23666-1-tiny.windzz@gmail.com>
From: Yangtao Li <tiny.windzz@gmail.com>
Date: Wed, 21 Nov 2018 11:06:15 -0500
> 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: Yangtao Li <tiny.windzz@gmail.com>
Several coding style problems and you are adding two new
leaks.
> + struct device_node *tmp;
> const char *keyb = of_get_property(ap, "keyboard", NULL);
> const char *ms = of_get_property(ap, "mouse", NULL);
Always order local variable declarations from longest to
shortest line.
>
> 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){
Always put a space between ")" and the "{" openning a new basic
block.
> + 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;
Now you have two references, one held by 'ap' and one held by 'tmp'.
You are not releasing the one held by 'tmp', and you must release
'tmp' even if it equals 'dp'.
It's pretty obvious you have no way by which to test these changes and
therefore are not doing so.
prev parent reply other threads:[~2018-12-03 4:57 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-21 16:06 [PATCH] serial/sunsu: add missing of_node_put() Yangtao Li
2018-12-03 4:57 ` David Miller [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181202.205752.1359988041150979586.davem@davemloft.net \
--to=davem@davemloft.net \
--cc=gregkh@linuxfoundation.org \
--cc=jslaby@suse.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=sparclinux@vger.kernel.org \
--cc=tiny.windzz@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).