From: Krzysztof Kozlowski <krzk@kernel.org>
To: Richard Fitzgerald <rf@opensource.cirrus.com>
Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org,
patches@opensource.cirrus.com, Mark Brown <broonie@kernel.org>
Subject: Re: [PATCH] ASoC: cs-amp-lib: Use __free(kfree) instead of manual freeing
Date: Mon, 1 Dec 2025 12:40:55 +0100 [thread overview]
Message-ID: <b3d4e9da-4442-4599-bea9-0d65921fd988@kernel.org> (raw)
In-Reply-To: <f0fdf061-7e9e-4db3-afbb-9e07c0fc17ec@opensource.cirrus.com>
On 01/12/2025 12:30, Richard Fitzgerald wrote:
> On 01/12/2025 9:57 am, Richard Fitzgerald wrote:
>> On 29/11/2025 2:28 pm, Krzysztof Kozlowski wrote:
>>> On 27/11/2025 16:58, Richard Fitzgerald wrote:
>>>> Use the __free(kfree) cleanup to replace instances of manually
>>>> calling kfree(). Also make some code path simplifications that this
>>>> allows.
>>>>
>>>> Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
>>>> ---
>>>> sound/soc/codecs/cs-amp-lib.c | 29 ++++++++++++-----------------
>>>> 1 file changed, 12 insertions(+), 17 deletions(-)
>>>>
>>>> diff --git a/sound/soc/codecs/cs-amp-lib.c b/sound/soc/codecs/cs-amp-
>>>> lib.c
>>>> index d8f8b0259cd1..8c9fd9980a7d 100644
>>>> --- a/sound/soc/codecs/cs-amp-lib.c
>>>> +++ b/sound/soc/codecs/cs-amp-lib.c
>>>> @@ -7,6 +7,7 @@
>>>> #include <asm/byteorder.h>
>>>> #include <kunit/static_stub.h>
>>>> +#include <linux/cleanup.h>
>>>> #include <linux/debugfs.h>
>>>> #include <linux/dev_printk.h>
>>>> #include <linux/efi.h>
>>>> @@ -309,9 +310,8 @@ static struct cirrus_amp_efi_data
>>>> *cs_amp_get_cal_efi_buffer(struct device *dev,
>>>> efi_guid_t **guid,
>>>> u32 *attr)
>>>> {
>>>> - struct cirrus_amp_efi_data *efi_data;
>>>> + struct cirrus_amp_efi_data *efi_data __free(kfree) = NULL;
>>>
>>> This is an undesired syntax explicitly documented as one to avoid. You
>>> need here proper assignment, not NULL. Please don't use cleanup.h if you
>>> do not intend to follow it because it does not make the code simpler.
>>>
>>
>> LOL
>> The new system to improve cleanup introduces new cleanup bugs. :)
>>
>>>
>>> Best regards,
>>> Krzysztof
>>
> I found 119 other instances of this _free(kfree) something = NULL; idiom
> in sound/ and ~300 across the whole kernel. So you've got quite some
> code to fix.
In few cases, when allocation is within some if() block, this is a
correct approach but most likely 90% of these 300 are same cases of not
following cleanup.h. And then also mixing it up with gotos (another
explicitly documented rule which people ignore).
Best regards,
Krzysztof
prev parent reply other threads:[~2025-12-01 11:40 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-27 15:58 [PATCH] ASoC: cs-amp-lib: Use __free(kfree) instead of manual freeing Richard Fitzgerald
2025-11-27 21:52 ` Mark Brown
2025-11-29 14:28 ` Krzysztof Kozlowski
2025-12-01 9:57 ` Richard Fitzgerald
2025-12-01 11:30 ` Richard Fitzgerald
2025-12-01 11:40 ` Krzysztof Kozlowski [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=b3d4e9da-4442-4599-bea9-0d65921fd988@kernel.org \
--to=krzk@kernel.org \
--cc=broonie@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=patches@opensource.cirrus.com \
--cc=rf@opensource.cirrus.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