From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: Marc Gonzalez <marc.w.gonzalez@free.fr>
Cc: linux-clk <linux-clk@vger.kernel.org>,
Linux ARM <linux-arm-kernel@lists.infradead.org>,
LKML <linux-kernel@vger.kernel.org>,
Stephen Boyd <sboyd@kernel.org>,
Michael Turquette <mturquette@baylibre.com>,
Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>,
Russell King <rmk+kernel@armlinux.org.uk>,
Sudip Mukherjee <sudipm.mukherjee@gmail.com>,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
Guenter Roeck <linux@roeck-us.net>
Subject: Re: [PATCH v1] clk: Convert managed get functions to devm_add_action API
Date: Thu, 28 Nov 2019 10:56:30 -0800 [thread overview]
Message-ID: <20191128185630.GK82109@yoga> (raw)
In-Reply-To: <3d8a58bf-0814-1ec1-038a-10a20b9646ad@free.fr>
On Tue 26 Nov 08:13 PST 2019, Marc Gonzalez wrote:
> Date: Tue, 26 Nov 2019 13:56:53 +0100
>
> Using devm_add_action_or_reset() produces simpler code and smaller
> object size:
>
> 1 file changed, 16 insertions(+), 46 deletions(-)
>
> text data bss dec hex filename
> - 1797 80 0 1877 755 drivers/clk/clk-devres.o
> + 1499 56 0 1555 613 drivers/clk/clk-devres.o
>
> Signed-off-by: Marc Gonzalez <marc.w.gonzalez@free.fr>
Looks neat
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Regards,
Bjorn
> ---
> drivers/clk/clk-devres.c | 62 +++++++++++-----------------------------
> 1 file changed, 16 insertions(+), 46 deletions(-)
>
> diff --git a/drivers/clk/clk-devres.c b/drivers/clk/clk-devres.c
> index be160764911b..04379c1f203e 100644
> --- a/drivers/clk/clk-devres.c
> +++ b/drivers/clk/clk-devres.c
> @@ -4,31 +4,29 @@
> #include <linux/export.h>
> #include <linux/gfp.h>
>
> -static void devm_clk_release(struct device *dev, void *res)
> +static void __clk_put(void *clk)
> {
> - clk_put(*(struct clk **)res);
> + clk_put(clk);
> }
>
> struct clk *devm_clk_get(struct device *dev, const char *id)
> {
> - struct clk **ptr, *clk;
> + struct clk *clk = clk_get(dev, id);
>
> - ptr = devres_alloc(devm_clk_release, sizeof(*ptr), GFP_KERNEL);
> - if (!ptr)
> - return ERR_PTR(-ENOMEM);
> -
> - clk = clk_get(dev, id);
> - if (!IS_ERR(clk)) {
> - *ptr = clk;
> - devres_add(dev, ptr);
> - } else {
> - devres_free(ptr);
> - }
> + if (!IS_ERR(clk))
> + if (devm_add_action_or_reset(dev, __clk_put, clk))
> + clk = ERR_PTR(-ENOMEM);
>
> return clk;
> }
> EXPORT_SYMBOL(devm_clk_get);
>
> +void devm_clk_put(struct device *dev, struct clk *clk)
> +{
> + devm_release_action(dev, __clk_put, clk);
> +}
> +EXPORT_SYMBOL(devm_clk_put);
> +
> struct clk *devm_clk_get_optional(struct device *dev, const char *id)
> {
> struct clk *clk = devm_clk_get(dev, id);
> @@ -116,42 +114,14 @@ int __must_check devm_clk_bulk_get_all(struct device *dev,
> }
> EXPORT_SYMBOL_GPL(devm_clk_bulk_get_all);
>
> -static int devm_clk_match(struct device *dev, void *res, void *data)
> -{
> - struct clk **c = res;
> - if (!c || !*c) {
> - WARN_ON(!c || !*c);
> - return 0;
> - }
> - return *c == data;
> -}
> -
> -void devm_clk_put(struct device *dev, struct clk *clk)
> -{
> - int ret;
> -
> - ret = devres_release(dev, devm_clk_release, devm_clk_match, clk);
> -
> - WARN_ON(ret);
> -}
> -EXPORT_SYMBOL(devm_clk_put);
> -
> struct clk *devm_get_clk_from_child(struct device *dev,
> struct device_node *np, const char *con_id)
> {
> - struct clk **ptr, *clk;
> -
> - ptr = devres_alloc(devm_clk_release, sizeof(*ptr), GFP_KERNEL);
> - if (!ptr)
> - return ERR_PTR(-ENOMEM);
> + struct clk *clk = of_clk_get_by_name(np, con_id);
>
> - clk = of_clk_get_by_name(np, con_id);
> - if (!IS_ERR(clk)) {
> - *ptr = clk;
> - devres_add(dev, ptr);
> - } else {
> - devres_free(ptr);
> - }
> + if (!IS_ERR(clk))
> + if (devm_add_action_or_reset(dev, __clk_put, clk))
> + clk = ERR_PTR(-ENOMEM);
>
> return clk;
> }
> --
> 2.17.1
WARNING: multiple messages have this Message-ID (diff)
From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: Marc Gonzalez <marc.w.gonzalez@free.fr>
Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>,
Stephen Boyd <sboyd@kernel.org>,
Michael Turquette <mturquette@baylibre.com>,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
LKML <linux-kernel@vger.kernel.org>,
Sudip Mukherjee <sudipm.mukherjee@gmail.com>,
Russell King <rmk+kernel@armlinux.org.uk>,
Guenter Roeck <linux@roeck-us.net>,
linux-clk <linux-clk@vger.kernel.org>,
Linux ARM <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v1] clk: Convert managed get functions to devm_add_action API
Date: Thu, 28 Nov 2019 10:56:30 -0800 [thread overview]
Message-ID: <20191128185630.GK82109@yoga> (raw)
In-Reply-To: <3d8a58bf-0814-1ec1-038a-10a20b9646ad@free.fr>
On Tue 26 Nov 08:13 PST 2019, Marc Gonzalez wrote:
> Date: Tue, 26 Nov 2019 13:56:53 +0100
>
> Using devm_add_action_or_reset() produces simpler code and smaller
> object size:
>
> 1 file changed, 16 insertions(+), 46 deletions(-)
>
> text data bss dec hex filename
> - 1797 80 0 1877 755 drivers/clk/clk-devres.o
> + 1499 56 0 1555 613 drivers/clk/clk-devres.o
>
> Signed-off-by: Marc Gonzalez <marc.w.gonzalez@free.fr>
Looks neat
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Regards,
Bjorn
> ---
> drivers/clk/clk-devres.c | 62 +++++++++++-----------------------------
> 1 file changed, 16 insertions(+), 46 deletions(-)
>
> diff --git a/drivers/clk/clk-devres.c b/drivers/clk/clk-devres.c
> index be160764911b..04379c1f203e 100644
> --- a/drivers/clk/clk-devres.c
> +++ b/drivers/clk/clk-devres.c
> @@ -4,31 +4,29 @@
> #include <linux/export.h>
> #include <linux/gfp.h>
>
> -static void devm_clk_release(struct device *dev, void *res)
> +static void __clk_put(void *clk)
> {
> - clk_put(*(struct clk **)res);
> + clk_put(clk);
> }
>
> struct clk *devm_clk_get(struct device *dev, const char *id)
> {
> - struct clk **ptr, *clk;
> + struct clk *clk = clk_get(dev, id);
>
> - ptr = devres_alloc(devm_clk_release, sizeof(*ptr), GFP_KERNEL);
> - if (!ptr)
> - return ERR_PTR(-ENOMEM);
> -
> - clk = clk_get(dev, id);
> - if (!IS_ERR(clk)) {
> - *ptr = clk;
> - devres_add(dev, ptr);
> - } else {
> - devres_free(ptr);
> - }
> + if (!IS_ERR(clk))
> + if (devm_add_action_or_reset(dev, __clk_put, clk))
> + clk = ERR_PTR(-ENOMEM);
>
> return clk;
> }
> EXPORT_SYMBOL(devm_clk_get);
>
> +void devm_clk_put(struct device *dev, struct clk *clk)
> +{
> + devm_release_action(dev, __clk_put, clk);
> +}
> +EXPORT_SYMBOL(devm_clk_put);
> +
> struct clk *devm_clk_get_optional(struct device *dev, const char *id)
> {
> struct clk *clk = devm_clk_get(dev, id);
> @@ -116,42 +114,14 @@ int __must_check devm_clk_bulk_get_all(struct device *dev,
> }
> EXPORT_SYMBOL_GPL(devm_clk_bulk_get_all);
>
> -static int devm_clk_match(struct device *dev, void *res, void *data)
> -{
> - struct clk **c = res;
> - if (!c || !*c) {
> - WARN_ON(!c || !*c);
> - return 0;
> - }
> - return *c == data;
> -}
> -
> -void devm_clk_put(struct device *dev, struct clk *clk)
> -{
> - int ret;
> -
> - ret = devres_release(dev, devm_clk_release, devm_clk_match, clk);
> -
> - WARN_ON(ret);
> -}
> -EXPORT_SYMBOL(devm_clk_put);
> -
> struct clk *devm_get_clk_from_child(struct device *dev,
> struct device_node *np, const char *con_id)
> {
> - struct clk **ptr, *clk;
> -
> - ptr = devres_alloc(devm_clk_release, sizeof(*ptr), GFP_KERNEL);
> - if (!ptr)
> - return ERR_PTR(-ENOMEM);
> + struct clk *clk = of_clk_get_by_name(np, con_id);
>
> - clk = of_clk_get_by_name(np, con_id);
> - if (!IS_ERR(clk)) {
> - *ptr = clk;
> - devres_add(dev, ptr);
> - } else {
> - devres_free(ptr);
> - }
> + if (!IS_ERR(clk))
> + if (devm_add_action_or_reset(dev, __clk_put, clk))
> + clk = ERR_PTR(-ENOMEM);
>
> return clk;
> }
> --
> 2.17.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2019-11-28 18:56 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-26 16:13 [PATCH v1] clk: Convert managed get functions to devm_add_action API Marc Gonzalez
2019-11-26 16:13 ` Marc Gonzalez
2019-11-28 18:56 ` Bjorn Andersson [this message]
2019-11-28 18:56 ` Bjorn Andersson
2019-12-02 1:42 ` Dmitry Torokhov
2019-12-02 1:42 ` Dmitry Torokhov
2019-12-02 9:25 ` Marc Gonzalez
2019-12-02 9:25 ` Marc Gonzalez
2019-12-02 13:51 ` Robin Murphy
2019-12-02 13:51 ` Robin Murphy
2019-12-11 16:17 ` Marc Gonzalez
2019-12-11 16:17 ` Marc Gonzalez
2019-12-11 22:28 ` Dmitry Torokhov
2019-12-11 22:28 ` Dmitry Torokhov
2019-12-12 13:53 ` Marc Gonzalez
2019-12-12 13:53 ` Marc Gonzalez
2019-12-12 14:17 ` Russell King - ARM Linux admin
2019-12-12 14:17 ` Russell King - ARM Linux admin
2019-12-12 14:41 ` Marc Gonzalez
2019-12-12 14:41 ` Marc Gonzalez
2019-12-12 14:46 ` Russell King - ARM Linux admin
2019-12-12 14:46 ` Russell King - ARM Linux admin
2019-12-12 15:51 ` Marc Gonzalez
2019-12-12 15:51 ` Marc Gonzalez
2019-12-12 16:13 ` Russell King - ARM Linux admin
2019-12-12 16:13 ` Russell King - ARM Linux admin
2019-12-12 14:47 ` Robin Murphy
2019-12-12 14:47 ` Robin Murphy
2019-12-12 16:59 ` Marc Gonzalez
2019-12-12 16:59 ` Marc Gonzalez
2019-12-12 17:05 ` Russell King - ARM Linux admin
2019-12-12 17:05 ` Russell King - ARM Linux admin
2019-12-12 18:15 ` Robin Murphy
2019-12-12 18:15 ` Robin Murphy
2019-12-12 19:10 ` Dmitry Torokhov
2019-12-12 19:10 ` Dmitry Torokhov
2019-12-12 21:08 ` Robin Murphy
2019-12-12 21:08 ` Robin Murphy
2019-12-13 0:16 ` Dmitry Torokhov
2019-12-13 0:16 ` Dmitry Torokhov
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=20191128185630.GK82109@yoga \
--to=bjorn.andersson@linaro.org \
--cc=dmitry.torokhov@gmail.com \
--cc=kuninori.morimoto.gx@renesas.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=marc.w.gonzalez@free.fr \
--cc=mturquette@baylibre.com \
--cc=rmk+kernel@armlinux.org.uk \
--cc=sboyd@kernel.org \
--cc=sudipm.mukherjee@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.