All of lore.kernel.org
 help / color / mirror / Atom feed
* [RESEND PATCH] irq/irq_sim: shrink devm_irq_domain_create_sim()
@ 2021-03-01 14:26 Bartosz Golaszewski
  2021-03-16  9:53 ` Bartosz Golaszewski
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Bartosz Golaszewski @ 2021-03-01 14:26 UTC (permalink / raw)
  To: Thomas Gleixner, Marc Zyngier; +Cc: linux-kernel, Bartosz Golaszewski

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

We don't have to use a custom devres structure if all we manage is a
single pointer - we can use devm_add_action_or_reset() for that and
shrink the code a bit.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
---
 kernel/irq/irq_sim.c | 31 ++++++++++++-------------------
 1 file changed, 12 insertions(+), 19 deletions(-)

diff --git a/kernel/irq/irq_sim.c b/kernel/irq/irq_sim.c
index 48006608baf0..ee40a84641e5 100644
--- a/kernel/irq/irq_sim.c
+++ b/kernel/irq/irq_sim.c
@@ -24,10 +24,6 @@ struct irq_sim_irq_ctx {
 	struct irq_sim_work_ctx	*work_ctx;
 };
 
-struct irq_sim_devres {
-	struct irq_domain	*domain;
-};
-
 static void irq_sim_irqmask(struct irq_data *data)
 {
 	struct irq_sim_irq_ctx *irq_ctx = irq_data_get_irq_chip_data(data);
@@ -216,11 +212,11 @@ void irq_domain_remove_sim(struct irq_domain *domain)
 }
 EXPORT_SYMBOL_GPL(irq_domain_remove_sim);
 
-static void devm_irq_domain_release_sim(struct device *dev, void *res)
+static void devm_irq_domain_remove_sim(void *data)
 {
-	struct irq_sim_devres *this = res;
+	struct irq_domain *domain = data;
 
-	irq_domain_remove_sim(this->domain);
+	irq_domain_remove_sim(domain);
 }
 
 /**
@@ -238,20 +234,17 @@ struct irq_domain *devm_irq_domain_create_sim(struct device *dev,
 					      struct fwnode_handle *fwnode,
 					      unsigned int num_irqs)
 {
-	struct irq_sim_devres *dr;
+	struct irq_domain *domain;
+	int ret;
 
-	dr = devres_alloc(devm_irq_domain_release_sim,
-			  sizeof(*dr), GFP_KERNEL);
-	if (!dr)
-		return ERR_PTR(-ENOMEM);
+	domain = irq_domain_create_sim(fwnode, num_irqs);
+	if (IS_ERR(domain))
+		return domain;
 
-	dr->domain = irq_domain_create_sim(fwnode, num_irqs);
-	if (IS_ERR(dr->domain)) {
-		devres_free(dr);
-		return dr->domain;
-	}
+	ret = devm_add_action_or_reset(dev, devm_irq_domain_remove_sim, domain);
+	if (!ret)
+		return ERR_PTR(ret);
 
-	devres_add(dev, dr);
-	return dr->domain;
+	return domain;
 }
 EXPORT_SYMBOL_GPL(devm_irq_domain_create_sim);
-- 
2.29.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [RESEND PATCH] irq/irq_sim: shrink devm_irq_domain_create_sim()
  2021-03-01 14:26 [RESEND PATCH] irq/irq_sim: shrink devm_irq_domain_create_sim() Bartosz Golaszewski
@ 2021-03-16  9:53 ` Bartosz Golaszewski
  2021-03-29 13:39 ` [tip: irq/core] genirq/irq_sim: Shrink devm_irq_domain_create_sim() tip-bot2 for Bartosz Golaszewski
  2021-03-30 11:33 ` tip-bot2 for Bartosz Golaszewski
  2 siblings, 0 replies; 4+ messages in thread
From: Bartosz Golaszewski @ 2021-03-16  9:53 UTC (permalink / raw)
  To: Thomas Gleixner, Marc Zyngier
  Cc: Linux Kernel Mailing List, Bartosz Golaszewski

On Mon, Mar 1, 2021 at 3:27 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
>
> From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
>
> We don't have to use a custom devres structure if all we manage is a
> single pointer - we can use devm_add_action_or_reset() for that and
> shrink the code a bit.
>
> Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> ---
>  kernel/irq/irq_sim.c | 31 ++++++++++++-------------------
>  1 file changed, 12 insertions(+), 19 deletions(-)
>
> diff --git a/kernel/irq/irq_sim.c b/kernel/irq/irq_sim.c
> index 48006608baf0..ee40a84641e5 100644
> --- a/kernel/irq/irq_sim.c
> +++ b/kernel/irq/irq_sim.c
> @@ -24,10 +24,6 @@ struct irq_sim_irq_ctx {
>         struct irq_sim_work_ctx *work_ctx;
>  };
>
> -struct irq_sim_devres {
> -       struct irq_domain       *domain;
> -};
> -
>  static void irq_sim_irqmask(struct irq_data *data)
>  {
>         struct irq_sim_irq_ctx *irq_ctx = irq_data_get_irq_chip_data(data);
> @@ -216,11 +212,11 @@ void irq_domain_remove_sim(struct irq_domain *domain)
>  }
>  EXPORT_SYMBOL_GPL(irq_domain_remove_sim);
>
> -static void devm_irq_domain_release_sim(struct device *dev, void *res)
> +static void devm_irq_domain_remove_sim(void *data)
>  {
> -       struct irq_sim_devres *this = res;
> +       struct irq_domain *domain = data;
>
> -       irq_domain_remove_sim(this->domain);
> +       irq_domain_remove_sim(domain);
>  }
>
>  /**
> @@ -238,20 +234,17 @@ struct irq_domain *devm_irq_domain_create_sim(struct device *dev,
>                                               struct fwnode_handle *fwnode,
>                                               unsigned int num_irqs)
>  {
> -       struct irq_sim_devres *dr;
> +       struct irq_domain *domain;
> +       int ret;
>
> -       dr = devres_alloc(devm_irq_domain_release_sim,
> -                         sizeof(*dr), GFP_KERNEL);
> -       if (!dr)
> -               return ERR_PTR(-ENOMEM);
> +       domain = irq_domain_create_sim(fwnode, num_irqs);
> +       if (IS_ERR(domain))
> +               return domain;
>
> -       dr->domain = irq_domain_create_sim(fwnode, num_irqs);
> -       if (IS_ERR(dr->domain)) {
> -               devres_free(dr);
> -               return dr->domain;
> -       }
> +       ret = devm_add_action_or_reset(dev, devm_irq_domain_remove_sim, domain);
> +       if (!ret)
> +               return ERR_PTR(ret);
>
> -       devres_add(dev, dr);
> -       return dr->domain;
> +       return domain;
>  }
>  EXPORT_SYMBOL_GPL(devm_irq_domain_create_sim);
> --
> 2.29.1
>

Gentle ping.

Bartosz

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [tip: irq/core] genirq/irq_sim: Shrink devm_irq_domain_create_sim()
  2021-03-01 14:26 [RESEND PATCH] irq/irq_sim: shrink devm_irq_domain_create_sim() Bartosz Golaszewski
  2021-03-16  9:53 ` Bartosz Golaszewski
@ 2021-03-29 13:39 ` tip-bot2 for Bartosz Golaszewski
  2021-03-30 11:33 ` tip-bot2 for Bartosz Golaszewski
  2 siblings, 0 replies; 4+ messages in thread
From: tip-bot2 for Bartosz Golaszewski @ 2021-03-29 13:39 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: Bartosz Golaszewski, Thomas Gleixner, x86, linux-kernel, maz

The following commit has been merged into the irq/core branch of tip:

Commit-ID:     e6d46eded43dacf6370a7ae70f927ef4692cfcab
Gitweb:        https://git.kernel.org/tip/e6d46eded43dacf6370a7ae70f927ef4692cfcab
Author:        Bartosz Golaszewski <bgolaszewski@baylibre.com>
AuthorDate:    Mon, 01 Mar 2021 15:26:59 +01:00
Committer:     Thomas Gleixner <tglx@linutronix.de>
CommitterDate: Mon, 29 Mar 2021 15:36:00 +02:00

genirq/irq_sim: Shrink devm_irq_domain_create_sim()

The custom devres structure manages only a single pointer which can
can be achieved by using devm_add_action_or_reset() as well which
makes the code simpler.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20210301142659.8971-1-brgl@bgdev.pl

---
 kernel/irq/irq_sim.c | 31 ++++++++++++-------------------
 1 file changed, 12 insertions(+), 19 deletions(-)

diff --git a/kernel/irq/irq_sim.c b/kernel/irq/irq_sim.c
index 4800660..ee40a84 100644
--- a/kernel/irq/irq_sim.c
+++ b/kernel/irq/irq_sim.c
@@ -24,10 +24,6 @@ struct irq_sim_irq_ctx {
 	struct irq_sim_work_ctx	*work_ctx;
 };
 
-struct irq_sim_devres {
-	struct irq_domain	*domain;
-};
-
 static void irq_sim_irqmask(struct irq_data *data)
 {
 	struct irq_sim_irq_ctx *irq_ctx = irq_data_get_irq_chip_data(data);
@@ -216,11 +212,11 @@ void irq_domain_remove_sim(struct irq_domain *domain)
 }
 EXPORT_SYMBOL_GPL(irq_domain_remove_sim);
 
-static void devm_irq_domain_release_sim(struct device *dev, void *res)
+static void devm_irq_domain_remove_sim(void *data)
 {
-	struct irq_sim_devres *this = res;
+	struct irq_domain *domain = data;
 
-	irq_domain_remove_sim(this->domain);
+	irq_domain_remove_sim(domain);
 }
 
 /**
@@ -238,20 +234,17 @@ struct irq_domain *devm_irq_domain_create_sim(struct device *dev,
 					      struct fwnode_handle *fwnode,
 					      unsigned int num_irqs)
 {
-	struct irq_sim_devres *dr;
+	struct irq_domain *domain;
+	int ret;
 
-	dr = devres_alloc(devm_irq_domain_release_sim,
-			  sizeof(*dr), GFP_KERNEL);
-	if (!dr)
-		return ERR_PTR(-ENOMEM);
+	domain = irq_domain_create_sim(fwnode, num_irqs);
+	if (IS_ERR(domain))
+		return domain;
 
-	dr->domain = irq_domain_create_sim(fwnode, num_irqs);
-	if (IS_ERR(dr->domain)) {
-		devres_free(dr);
-		return dr->domain;
-	}
+	ret = devm_add_action_or_reset(dev, devm_irq_domain_remove_sim, domain);
+	if (!ret)
+		return ERR_PTR(ret);
 
-	devres_add(dev, dr);
-	return dr->domain;
+	return domain;
 }
 EXPORT_SYMBOL_GPL(devm_irq_domain_create_sim);

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [tip: irq/core] genirq/irq_sim: Shrink devm_irq_domain_create_sim()
  2021-03-01 14:26 [RESEND PATCH] irq/irq_sim: shrink devm_irq_domain_create_sim() Bartosz Golaszewski
  2021-03-16  9:53 ` Bartosz Golaszewski
  2021-03-29 13:39 ` [tip: irq/core] genirq/irq_sim: Shrink devm_irq_domain_create_sim() tip-bot2 for Bartosz Golaszewski
@ 2021-03-30 11:33 ` tip-bot2 for Bartosz Golaszewski
  2 siblings, 0 replies; 4+ messages in thread
From: tip-bot2 for Bartosz Golaszewski @ 2021-03-30 11:33 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: Bartosz Golaszewski, Thomas Gleixner, x86, linux-kernel, maz

The following commit has been merged into the irq/core branch of tip:

Commit-ID:     883ccef355b910398b99dfaf96d40557479a7e9b
Gitweb:        https://git.kernel.org/tip/883ccef355b910398b99dfaf96d40557479a7e9b
Author:        Bartosz Golaszewski <bgolaszewski@baylibre.com>
AuthorDate:    Mon, 01 Mar 2021 15:26:59 +01:00
Committer:     Thomas Gleixner <tglx@linutronix.de>
CommitterDate: Tue, 30 Mar 2021 13:21:27 +02:00

genirq/irq_sim: Shrink devm_irq_domain_create_sim()

The custom devres structure manages only a single pointer which can
can be achieved by using devm_add_action_or_reset() as well which
makes the code simpler.

[ tglx: Fixed return value handling - found by smatch ]

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20210301142659.8971-1-brgl@bgdev.pl
---
 kernel/irq/irq_sim.c | 31 ++++++++++++-------------------
 1 file changed, 12 insertions(+), 19 deletions(-)

diff --git a/kernel/irq/irq_sim.c b/kernel/irq/irq_sim.c
index 4800660..6e935d4 100644
--- a/kernel/irq/irq_sim.c
+++ b/kernel/irq/irq_sim.c
@@ -24,10 +24,6 @@ struct irq_sim_irq_ctx {
 	struct irq_sim_work_ctx	*work_ctx;
 };
 
-struct irq_sim_devres {
-	struct irq_domain	*domain;
-};
-
 static void irq_sim_irqmask(struct irq_data *data)
 {
 	struct irq_sim_irq_ctx *irq_ctx = irq_data_get_irq_chip_data(data);
@@ -216,11 +212,11 @@ void irq_domain_remove_sim(struct irq_domain *domain)
 }
 EXPORT_SYMBOL_GPL(irq_domain_remove_sim);
 
-static void devm_irq_domain_release_sim(struct device *dev, void *res)
+static void devm_irq_domain_remove_sim(void *data)
 {
-	struct irq_sim_devres *this = res;
+	struct irq_domain *domain = data;
 
-	irq_domain_remove_sim(this->domain);
+	irq_domain_remove_sim(domain);
 }
 
 /**
@@ -238,20 +234,17 @@ struct irq_domain *devm_irq_domain_create_sim(struct device *dev,
 					      struct fwnode_handle *fwnode,
 					      unsigned int num_irqs)
 {
-	struct irq_sim_devres *dr;
+	struct irq_domain *domain;
+	int ret;
 
-	dr = devres_alloc(devm_irq_domain_release_sim,
-			  sizeof(*dr), GFP_KERNEL);
-	if (!dr)
-		return ERR_PTR(-ENOMEM);
+	domain = irq_domain_create_sim(fwnode, num_irqs);
+	if (IS_ERR(domain))
+		return domain;
 
-	dr->domain = irq_domain_create_sim(fwnode, num_irqs);
-	if (IS_ERR(dr->domain)) {
-		devres_free(dr);
-		return dr->domain;
-	}
+	ret = devm_add_action_or_reset(dev, devm_irq_domain_remove_sim, domain);
+	if (ret)
+		return ERR_PTR(ret);
 
-	devres_add(dev, dr);
-	return dr->domain;
+	return domain;
 }
 EXPORT_SYMBOL_GPL(devm_irq_domain_create_sim);

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-03-30 11:33 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-01 14:26 [RESEND PATCH] irq/irq_sim: shrink devm_irq_domain_create_sim() Bartosz Golaszewski
2021-03-16  9:53 ` Bartosz Golaszewski
2021-03-29 13:39 ` [tip: irq/core] genirq/irq_sim: Shrink devm_irq_domain_create_sim() tip-bot2 for Bartosz Golaszewski
2021-03-30 11:33 ` tip-bot2 for Bartosz Golaszewski

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.