From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: Yangtao Li <tiny.windzz@gmail.com>
Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v5] Input: i8042 add i8042_is_mr_coffee() helper to avoid refconut leak
Date: Fri, 21 Dec 2018 00:42:12 -0800 [thread overview]
Message-ID: <20181221084212.GG211587@dtor-ws> (raw)
In-Reply-To: <20181215090846.28009-1-tiny.windzz@gmail.com>
On Sat, Dec 15, 2018 at 04:08:46AM -0500, Yangtao Li wrote:
> of_find_node_by_path() acquires a reference to the node returned by
> it and that reference needs to be dropped by its caller. Add
> i8042_is_mr_coffee() helper to avoid refconut leak.
>
> Signed-off-by: Yangtao Li <tiny.windzz@gmail.com>
> ---
> changes in v5:
> -fix typo
Has this at least been actually compiled by you?
>
> changes in v4:
> -fix typo
>
> changes in v3:
> -add i8042_is_mr_coffee
> ---
> drivers/input/serio/i8042-sparcio.h | 20 ++++++++++++++++----
> 1 file changed, 16 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/input/serio/i8042-sparcio.h b/drivers/input/serio/i8042-sparcio.h
> index 796289846204..9e9e512bc432 100644
> --- a/drivers/input/serio/i8042-sparcio.h
> +++ b/drivers/input/serio/i8042-sparcio.h
> @@ -106,11 +106,23 @@ static struct platform_driver sparc_i8042_driver = {
> .remove = sparc_i8042_remove,
> };
>
> +static inline bool i8042_is_mr_coffee(void)
> +{
> + struct device_node *root;
> + bool is_mr_coffee;
> +
> + root = of_find_node_by_path("/");
> + is_mr_coffee = !strcmp(root->name, "SUNW,JavaStation-1");
> + of_node_put(root);
> +
> + return is_mr_coffee;
> +}
> +
> static int __init i8042_platform_init(void)
> {
> - struct device_node *root = of_find_node_by_path("/");
> + bool match = i8042_is_mr_coffee();
>
> - if (!strcmp(root->name, "SUNW,JavaStation-1")) {
> + if (match) {
> /* Hardcoded values for MrCoffee. */
> i8042_kbd_irq = i8042_aux_irq = 13 | 0x20;
> kbd_iobase = ioremap(0x71300060, 8);
> @@ -138,9 +150,9 @@ static int __init i8042_platform_init(void)
>
> static inline void i8042_platform_exit(void)
> {
> - struct device_node *root = of_find_node_by_path("/");
> + bool match = i8042_is_mr_coffee();
>
> - if (strcmp(root->name, "SUNW,JavaStation-1"))
> + if (!match)
> platform_driver_unregister(&sparc_i8042_driver);
> }
>
> --
> 2.17.0
>
--
Dmitry
next prev parent reply other threads:[~2018-12-21 8:42 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-15 9:08 [PATCH v5] Input: i8042 add i8042_is_mr_coffee() helper to avoid refconut leak Yangtao Li
2018-12-21 8:42 ` Dmitry Torokhov [this message]
2018-12-21 14:45 ` Frank Lee
2018-12-27 22:43 ` Pavel Machek
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=20181221084212.GG211587@dtor-ws \
--to=dmitry.torokhov@gmail.com \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.