All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Gleixner <tglx@linutronix.de>
To: Markus Elfring <Markus.Elfring@web.de>,
	Fabrizio Castro <fabrizio.castro.jz@renesas.com>,
	linux-renesas-soc@vger.kernel.org,
	Geert Uytterhoeven <geert+renesas@glider.be>
Cc: LKML <linux-kernel@vger.kernel.org>,
	kernel-janitors@vger.kernel.org,
	Biju Das <biju.das.jz@bp.renesas.com>,
	Chris Paterson <Chris.Paterson2@renesas.com>,
	Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>,
	Marc Zyngier <maz@kernel.org>
Subject: Re: [PATCH v4] irqchip/renesas-rzg2l: Fix missing put_device
Date: Tue, 15 Oct 2024 23:52:09 +0200	[thread overview]
Message-ID: <871q0hdofq.ffs@tglx> (raw)
In-Reply-To: <663a37fe-ffc4-4826-b8ba-bcefdb0e7992@web.de>

On Fri, Oct 11 2024 at 20:48, Markus Elfring wrote:
>> rzg2l_irqc_common_init calls of_find_device_by_node, but the
>> corresponding put_device call is missing.
>
> How do you think about to append parentheses to function names
> (so that they can be distinguished a bit easier from other identifiers)?
>
>
>> Make use of the cleanup interfaces from cleanup.h to call into
>> __free_put_device (which in turn calls into put_device) when
>
> Can it help to influence the understanding of this programming
> interface by mentioning the usage of a special attribute?

Can you please stop pestering people with incomprehensible word salad?

>> leaving function rzg2l_irqc_common_init and variable "dev" goes
>> out of scope.
>>
>> Mind that we don't want to "put" "dev" when rzg2l_irqc_common_init
>> completes successfully, therefore assign NULL to "dev" to prevent
>> __free_put_device from calling into put_device within the successful
>> path.
>
> Will further software design options become applicable here?
>
> Can any pointer type be used for the return value
> (instead of the data type “int”)?

How is this relevant here?

>
>> "make coccicheck" will still complain about missing put_device calls,
>> but those are false positives now.
>
> Would you like to discuss any adjustment possibilities for this
> development tool?

Would you like to get useful work done insteead of telling everyone what
to do? There is nothing to discuss.

>> +++ b/drivers/irqchip/irq-renesas-rzg2l.c
>> @@ -8,6 +8,7 @@
>>   */
>>
>>  #include <linux/bitfield.h>
>> +#include <linux/cleanup.h>
> …
>
> This header file would usually be included by an other inclusion statement already,
> wouldn't it?

Relying on indirect includes is not necessarily a good idea/

>> @@ -530,12 +531,12 @@ static int rzg2l_irqc_parse_interrupts(struct rzg2l_irqc_priv *priv,
>>  static int rzg2l_irqc_common_init(struct device_node *node, struct device_node *parent,
>>  				  const struct irq_chip *irq_chip)
>>  {
>> +	struct platform_device *pdev = of_find_device_by_node(node);
>> +	struct device *dev __free(put_device) = pdev ? &pdev->dev : NULL;
>>  	struct irq_domain *irq_domain, *parent_domain;
>> -	struct platform_device *pdev;
>>  	struct reset_control *resetn;
>>  	int ret;
>>
>> -	pdev = of_find_device_by_node(node);
>>  	if (!pdev)
>>  		return -ENODEV;
> …
>
> Would you dare to reduce the scopes for any local variables here?
> https://refactoring.com/catalog/reduceScopeOfVariable.html

Can you keep your refactoring links for yourself please? We are aware of
this.

But this change fixes a bug and that's it. We are not doing cleanups in
a bug fix. Please read and understand Documentation/process before
giving people ill defined advise.

Thanks,

        tglx

  reply	other threads:[~2024-10-15 21:52 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-11 17:20 [PATCH v4] irqchip/renesas-rzg2l: Fix missing put_device Fabrizio Castro
2024-10-11 18:48 ` Markus Elfring
2024-10-15 21:52   ` Thomas Gleixner [this message]
2024-10-16  9:38     ` [v4] " Markus Elfring
2024-10-16 14:35       ` Thomas Gleixner
2024-10-16 22:00       ` Thomas Gleixner
2024-10-15 22:03 ` [tip: irq/urgent] " tip-bot2 for Fabrizio Castro
2024-10-17 12:21 ` [PATCH v4] " Lad, Prabhakar
2025-02-11 15:11 ` Geert Uytterhoeven
2025-02-11 15:49   ` Fabrizio Castro
2025-02-11 16:16     ` Geert Uytterhoeven

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=871q0hdofq.ffs@tglx \
    --to=tglx@linutronix.de \
    --cc=Chris.Paterson2@renesas.com \
    --cc=Markus.Elfring@web.de \
    --cc=biju.das.jz@bp.renesas.com \
    --cc=fabrizio.castro.jz@renesas.com \
    --cc=geert+renesas@glider.be \
    --cc=kernel-janitors@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=maz@kernel.org \
    --cc=prabhakar.mahadev-lad.rj@bp.renesas.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.